* feat: add resource parameter validation tests (RFC 8707) Adds conformance tests for OAuth Resource Indicators (RFC 8707) implementation: 1. Resource parameter checks added to token-endpoint-auth-basic scenario: - resource-parameter-in-authorization: Verify resource in auth request - resource-parameter-in-token: Verify resource in token request - resource-parameter-valid-uri: Verify valid canonical URI - resource-parameter-consistency: Verify consistency between requests 2. New auth/resource-mismatch scenario: - Tests that client rejects when PRM resource doesn't match server URL - Server returns mismatched resource in PRM - Test passes if client does NOT proceed with authorization Also adds spec references for RFC 8707 and MCP resource parameter spec. Closes #33 * fix: make resource consistency check a FAILURE and remove dead code - Change resource parameter consistency from WARNING to FAILURE - Remove unreachable protocol check in validateCanonicalUri (URL constructor already validates scheme presence)
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import { Scenario } from '../../../types';
|
|
import { metadataScenarios } from './discovery-metadata';
|
|
import { AuthBasicCIMDScenario } from './basic-cimd';
|
|
import {
|
|
Auth20250326OAuthMetadataBackcompatScenario,
|
|
Auth20250326OEndpointFallbackScenario
|
|
} from './march-spec-backcompat';
|
|
import {
|
|
ScopeFromWwwAuthenticateScenario,
|
|
ScopeFromScopesSupportedScenario,
|
|
ScopeOmittedWhenUndefinedScenario,
|
|
ScopeStepUpAuthScenario,
|
|
ScopeRetryLimitScenario
|
|
} from './scope-handling';
|
|
import {
|
|
ClientSecretBasicAuthScenario,
|
|
ClientSecretPostAuthScenario,
|
|
PublicClientAuthScenario
|
|
} from './token-endpoint-auth';
|
|
import {
|
|
ClientCredentialsJwtScenario,
|
|
ClientCredentialsBasicScenario
|
|
} from './client-credentials';
|
|
import { ResourceMismatchScenario } from './resource-mismatch';
|
|
import { PreRegistrationScenario } from './pre-registration';
|
|
|
|
// Auth scenarios (required for tier 1)
|
|
export const authScenariosList: Scenario[] = [
|
|
...metadataScenarios,
|
|
new AuthBasicCIMDScenario(),
|
|
new Auth20250326OAuthMetadataBackcompatScenario(),
|
|
new Auth20250326OEndpointFallbackScenario(),
|
|
new ScopeFromWwwAuthenticateScenario(),
|
|
new ScopeFromScopesSupportedScenario(),
|
|
new ScopeOmittedWhenUndefinedScenario(),
|
|
new ScopeStepUpAuthScenario(),
|
|
new ScopeRetryLimitScenario(),
|
|
new ClientSecretBasicAuthScenario(),
|
|
new ClientSecretPostAuthScenario(),
|
|
new PublicClientAuthScenario(),
|
|
new ResourceMismatchScenario(),
|
|
new PreRegistrationScenario()
|
|
];
|
|
|
|
// Extension scenarios (optional for tier 1 - protocol extensions)
|
|
export const extensionScenariosList: Scenario[] = [
|
|
new ClientCredentialsJwtScenario(),
|
|
new ClientCredentialsBasicScenario()
|
|
];
|