| Test Name | oidcc-max-age-10000 |
|---|---|
| Variant | client_auth_type=client_secret_basic, server_metadata=discovery, response_type=code, response_mode=default, client_registration=static_client |
| Test ID | M22Ah4giVqa9BoY https://www.certification.openid.net/log-detail.html?public=true&log=M22Ah4giVqa9BoY |
| Created | 2026-07-18T14:17:59.225551050Z |
| Description | CodeB OIDC OP - Basic Certification Profile - 2026-07-18 |
| Test Version | 5.2.0 |
| Test Owner | 111972090125569840012 https://accounts.google.com |
| Plan ID | RRxhrmgabfcym https://www.certification.openid.net/plan-detail.html?public=true&plan=RRxhrmgabfcym |
| Exported From | https://www.certification.openid.net |
| Exported By | 111972090125569840012 https://accounts.google.com |
| Suite Version | 5.2.0 |
| Exported | 2026-07-18 16:35:01 (UTC) |
| Status: FINISHED Result: PASSED |
| SUCCESS 82 FAILURE 0 WARNING 0 REVIEW 0 INFO 8 |
| 2026-07-18 14:17:59 |
INFO
|
TEST-RUNNER
Test instance M22Ah4giVqa9BoY created
|
||||||||||||||||
|
||||||||||||||||||
| 2026-07-18 14:17:59 |
SUCCESS
|
CreateRedirectUri
Created redirect URI
|
||
|
||||
| 2026-07-18 14:17:59 |
|
GetDynamicServerConfiguration
HTTP request
|
||||||||
|
||||||||||
| 2026-07-18 14:18:00 |
RESPONSE
|
GetDynamicServerConfiguration
HTTP response
|
||||||||
|
||||||||||
| 2026-07-18 14:18:00 |
SUCCESS
|
GetDynamicServerConfiguration
Successfully parsed server configuration
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2026-07-18 14:18:00 |
SUCCESS
|
CheckServerConfiguration
Found required server configuration keys
|
||
|
||||
| 2026-07-18 14:18:00 |
SUCCESS
|
ExtractTLSTestValuesFromServerConfiguration
Extracted TLS information from authorization server configuration
|
||||||||
|
||||||||||
| 2026-07-18 14:18:00 |
|
FetchServerKeys
Fetching server key
|
||
|
||||
| 2026-07-18 14:18:00 |
|
FetchServerKeys
HTTP request
|
||||||||
|
||||||||||
| 2026-07-18 14:18:01 |
RESPONSE
|
FetchServerKeys
HTTP response
|
||||||||
|
||||||||||
| 2026-07-18 14:18:01 |
|
FetchServerKeys
Found JWK set string
|
||
|
||||
| 2026-07-18 14:18:01 |
SUCCESS
|
FetchServerKeys
Found server JWK set
|
||
|
||||
| 2026-07-18 14:18:01 |
SUCCESS
|
CheckServerKeysIsValid
Server JWKs is valid
|
||
|
||||
| Validate the JWK set in server JWKS |
| 2026-07-18 14:18:01 |
SUCCESS
|
MapJwksToValidationLocation
Selected the JWK set in server JWKS for validation
|
||
|
||||
| 2026-07-18 14:18:01 | SUCCESS |
EnsureJwksHasNoPrivateOrSymmetricKeyMaterial
The JWK set in server JWKS contains only public key material
|
||
|
||||
| 2026-07-18 14:18:01 | SUCCESS |
ValidateJwksStructure
The JWK set in server JWKS is structurally valid
|
||
|
||||
| 2026-07-18 14:18:01 | SUCCESS |
ParseUsableJwksKeys
All usable keys in the JWK set in server JWKS parse successfully
|
||
|
||||
| 2026-07-18 14:18:01 | SUCCESS |
WarnOnUnusableJwksKeys
All keys in the JWK set in server JWKS use a supported key type, curve and algorithm
|
||
|
||||
| 2026-07-18 14:18:01 | SUCCESS |
CheckForKeyIdInServerJWKs
All keys contain kids
|
|
|
||
| 2026-07-18 14:18:01 | SUCCESS |
CheckDistinctKeyIdValueInServerJWKs
Distinct 'kid' value in all keys of server_jwks
|
||
|
||||
| 2026-07-18 14:18:01 |
SUCCESS
|
GetStaticClientConfiguration
Found a static client object
|
||||
|
||||||
| 2026-07-18 14:18:01 | INFO |
ValidateClientJWKsPrivatePart
Skipped evaluation due to missing required element: client jwks
|
||||||
|
||||||||
| 2026-07-18 14:18:01 |
INFO
|
ExtractJWKsFromStaticClientConfiguration
Skipped evaluation due to missing required element: client jwks
|
||||||
|
||||||||
| 2026-07-18 14:18:01 | INFO |
CheckDistinctKeyIdValueInClientJWKs
Skipped evaluation due to missing required element: client jwks
|
||||||
|
||||||||
| 2026-07-18 14:18:01 |
|
SetScopeInClientConfigurationToOpenId
Set scope in client configuration to "openid"
|
||
|
||||
| 2026-07-18 14:18:01 |
SUCCESS
|
EnsureServerConfigurationSupportsClientSecretBasic
Contents of 'token_endpoint_auth_methods_supported' in discovery document matches expectations.
|
||||||
|
||||||||
| 2026-07-18 14:18:01 |
SUCCESS
|
SetProtectedResourceUrlToUserInfoEndpoint
userinfo_endpoint will be used to test access token. The user info is not a mandatory to implement feature in the OpenID Connect specification, but is mandatory for certification.
|
||
|
||||
| 2026-07-18 14:18:01 |
|
oidcc-max-age-10000
Setup Done
|
|
|
||
| Make request to authorization endpoint |
| 2026-07-18 14:18:01 |
SUCCESS
|
CreateAuthorizationEndpointRequestFromClientInformation
Created authorization endpoint request
|
||||||
|
||||||||
| 2026-07-18 14:18:01 |
|
CreateRandomStateValue
Created state value
|
||||
|
||||||
| 2026-07-18 14:18:01 |
SUCCESS
|
AddStateToAuthorizationEndpointRequest
Added state parameter to request
|
||||||||
|
||||||||||
| 2026-07-18 14:18:01 |
|
CreateRandomNonceValue
Created nonce value
|
||||
|
||||||
| 2026-07-18 14:18:01 |
SUCCESS
|
AddNonceToAuthorizationEndpointRequest
Added nonce parameter to request
|
||||||||||
|
||||||||||||
| 2026-07-18 14:18:01 |
SUCCESS
|
SetAuthorizationEndpointRequestResponseTypeFromEnvironment
Added response_type parameter to request
|
||||||||||||
|
||||||||||||||
| 2026-07-18 14:18:01 | SUCCESS |
AddMaxAge15000ToAuthorizationEndpointRequest
Added max_age=15000 to authorization endpoint request
|
||||||||||||||
|
||||||||||||||||
| 2026-07-18 14:18:01 |
SUCCESS
|
BuildPlainRedirectToAuthorizationEndpoint
Sending to authorization endpoint
|
||||
|
||||||
| 2026-07-18 14:18:01 |
REDIRECT
|
oidcc-max-age-10000
Redirecting to authorization endpoint
|
||||
|
||||||
| 2026-07-18 14:18:21 |
INCOMING
|
oidcc-max-age-10000
Incoming HTTP request to /test/a/codeb/callback
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| 2026-07-18 14:18:21 |
SUCCESS
|
CreateRandomImplicitSubmitUrl
Created random implicit submission URL
|
||
|
||||
| 2026-07-18 14:18:21 |
OUTGOING
|
oidcc-max-age-10000
Response to HTTP request to test instance M22Ah4giVqa9BoY
|
||||
|
||||||
| 2026-07-18 14:18:21 |
INCOMING
|
oidcc-max-age-10000
Incoming HTTP request to /test/a/codeb/implicit/aUjczLkf4HWFwBwt7VL8
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| 2026-07-18 14:18:21 |
OUTGOING
|
oidcc-max-age-10000
Response to HTTP request to test instance M22Ah4giVqa9BoY
|
||||||||
|
||||||||||
| 2026-07-18 14:18:21 |
SUCCESS
|
ExtractImplicitHashToCallbackResponse
implicit_hash is empty
|
|
|
||
| 2026-07-18 14:18:21 |
REDIRECT-IN
|
oidcc-max-age-10000
Authorization endpoint response captured
|
||||||||||
|
||||||||||||
| Verify authorization endpoint response |
| 2026-07-18 14:18:21 |
SUCCESS
|
CheckMatchingCallbackParameters
Callback parameters successfully verified
|
|
|
||
| 2026-07-18 14:18:21 |
ValidateIssIfPresentInAuthorizationResponse
No 'iss' value in authorization response.
|
|
|
|
||
| 2026-07-18 14:18:21 |
SUCCESS
|
CheckIfAuthorizationEndpointError
No error from authorization endpoint
|
|
|
||
| 2026-07-18 14:18:21 |
SUCCESS
|
CheckStateInAuthorizationResponse
State in response correctly returned
|
||
|
||||
| 2026-07-18 14:18:21 |
SUCCESS
|
ExtractAuthorizationCodeFromAuthorizationResponse
Found authorization code
|
||
|
||||
| 2026-07-18 14:18:21 |
SUCCESS
|
CreateTokenEndpointRequestForAuthorizationCodeGrant
Created token endpoint request
|
||||||
|
||||||||
| 2026-07-18 14:18:21 |
SUCCESS
|
AddBasicAuthClientSecretToRequest
Added basic authorization header
|
||
|
||||
| 2026-07-18 14:18:21 |
|
CallTokenEndpointAndReturnFullResponse
HTTP request
|
||||||||
|
||||||||||
| 2026-07-18 14:18:21 |
RESPONSE
|
CallTokenEndpointAndReturnFullResponse
HTTP response
|
||||||||
|
||||||||||
| 2026-07-18 14:18:21 |
SUCCESS
|
CallTokenEndpointAndReturnFullResponse
Parsed token endpoint response
|
||||||||||
|
||||||||||||
| 2026-07-18 14:18:21 |
SUCCESS
|
CheckTokenEndpointHttpStatus200
Token endpoint http status code was 200
|
|
|
||
| 2026-07-18 14:18:21 |
SUCCESS
|
CheckIfTokenEndpointResponseError
No error from token endpoint
|
|
|
||
| 2026-07-18 14:18:21 |
SUCCESS
|
CheckForAccessTokenValue
Found an access token
|
||
|
||||
| 2026-07-18 14:18:21 |
SUCCESS
|
ExtractAccessTokenFromTokenResponse
Extracted the access token
|
||||
|
||||||
| 2026-07-18 14:18:21 | SUCCESS |
ExtractExpiresInFromTokenEndpointResponse
Extracted 'expires_in'
|
||
|
||||
| 2026-07-18 14:18:21 | SUCCESS |
ValidateExpiresIn
expires_in passed all validation checks
|
||
|
||||
| 2026-07-18 14:18:21 |
SUCCESS
|
CheckForRefreshTokenValue
Found a refresh token
|
||
|
||||
| 2026-07-18 14:18:21 | INFO |
ValidateIdTokenFromTokenResponseEncryption
Skipped evaluation due to missing required object: client_jwks
|
||||
|
||||||
| 2026-07-18 14:18:21 | SUCCESS |
ExtractIdTokenFromTokenResponse
Found and parsed the id_token from token_endpoint_response
|
||||||
|
||||||||
| 2026-07-18 14:18:21 | SUCCESS |
ValidateIdToken
ID token iss, aud, exp, iat, auth_time, acr & nbf claims passed validation checks
|
|
|
||
| 2026-07-18 14:18:21 |
ValidateIdTokenStandardClaims
sub is a string with content
|
|
|
|
||
| 2026-07-18 14:18:21 | SUCCESS |
ValidateIdTokenStandardClaims
id_token claims are valid
|
|
|
||
| 2026-07-18 14:18:21 | SUCCESS |
ValidateIdTokenNonce
Nonce values match
|
||
|
||||
| 2026-07-18 14:18:21 | SUCCESS |
ValidateIdTokenACRClaimAgainstRequest
Nothing to check; the conformance suite did not request an acr claim in request object
|
|
|
||
| 2026-07-18 14:18:21 |
SUCCESS
|
ValidateIdTokenSignature
id_token signature validated
|
||
|
||||
| 2026-07-18 14:18:21 | SUCCESS |
CheckForSubjectInIdToken
Found 'sub' in id_token
|
||
|
||||
| 2026-07-18 14:18:21 |
EnsureIdTokenUpdatedAtValid
id_token response does not contain 'updated_at'
|
|
|
|
||
| 2026-07-18 14:18:21 | INFO |
ValidateEncryptedIdTokenHasKid
Skipped evaluation due to missing required element: id_token jwe_header
|
||||||
|
||||||||
| Userinfo endpoint tests |
| 2026-07-18 14:18:21 |
|
CallProtectedResource
HTTP request
|
||||||||
|
||||||||||
| 2026-07-18 14:18:22 |
RESPONSE
|
CallProtectedResource
HTTP response
|
||||||||
|
||||||||||
| 2026-07-18 14:18:22 |
SUCCESS
|
CallProtectedResource
Got a response from the resource endpoint
|
||||||||
|
||||||||||
| 2026-07-18 14:18:22 |
SUCCESS
|
EnsureHttpStatusCodeIs200
resource endpoint returned the expected http status
|
||||
|
||||||
| 2026-07-18 14:18:22 | SUCCESS |
CheckIdTokenAuthTimeClaimPresentDueToMaxAge
auth_time is present in the id_token, as required for a authentication where the max_age parameter was used
|
||
|
||||
| Second authorization: Make request to authorization endpoint |
| 2026-07-18 14:18:22 |
SUCCESS
|
CreateAuthorizationEndpointRequestFromClientInformation
Created authorization endpoint request
|
||||||
|
||||||||
| 2026-07-18 14:18:22 |
|
CreateRandomStateValue
Created state value
|
||||
|
||||||
| 2026-07-18 14:18:22 |
SUCCESS
|
AddStateToAuthorizationEndpointRequest
Added state parameter to request
|
||||||||
|
||||||||||
| 2026-07-18 14:18:22 |
|
CreateRandomNonceValue
Created nonce value
|
||||
|
||||||
| 2026-07-18 14:18:22 |
SUCCESS
|
AddNonceToAuthorizationEndpointRequest
Added nonce parameter to request
|
||||||||||
|
||||||||||||
| 2026-07-18 14:18:22 |
SUCCESS
|
SetAuthorizationEndpointRequestResponseTypeFromEnvironment
Added response_type parameter to request
|
||||||||||||
|
||||||||||||||
| 2026-07-18 14:18:22 | SUCCESS |
AddMaxAge10000ToAuthorizationEndpointRequest
Added max_age=10000 to authorization endpoint request
|
||||||||||||||
|
||||||||||||||||
| 2026-07-18 14:18:22 |
SUCCESS
|
BuildPlainRedirectToAuthorizationEndpoint
Sending to authorization endpoint
|
||||
|
||||||
| 2026-07-18 14:18:22 |
REDIRECT
|
oidcc-max-age-10000
Redirecting to authorization endpoint
|
||||
|
||||||
| 2026-07-18 14:18:58 |
INCOMING
|
oidcc-max-age-10000
Incoming HTTP request to /test/a/codeb/callback
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| 2026-07-18 14:18:58 |
SUCCESS
|
CreateRandomImplicitSubmitUrl
Created random implicit submission URL
|
||
|
||||
| 2026-07-18 14:18:58 |
OUTGOING
|
oidcc-max-age-10000
Response to HTTP request to test instance M22Ah4giVqa9BoY
|
||||
|
||||||
| 2026-07-18 14:18:58 |
INCOMING
|
oidcc-max-age-10000
Incoming HTTP request to /test/a/codeb/implicit/K6IR4ORjuZRVDwgfePdi
|
||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| 2026-07-18 14:18:58 |
OUTGOING
|
oidcc-max-age-10000
Response to HTTP request to test instance M22Ah4giVqa9BoY
|
||||||||
|
||||||||||
| 2026-07-18 14:18:58 |
SUCCESS
|
ExtractImplicitHashToCallbackResponse
implicit_hash is empty
|
|
|
||
| 2026-07-18 14:18:58 |
REDIRECT-IN
|
oidcc-max-age-10000
Authorization endpoint response captured
|
||||||||||
|
||||||||||||
| Second authorization: Verify authorization endpoint response |
| 2026-07-18 14:18:58 |
SUCCESS
|
CheckMatchingCallbackParameters
Callback parameters successfully verified
|
|
|
||
| 2026-07-18 14:18:58 |
ValidateIssIfPresentInAuthorizationResponse
No 'iss' value in authorization response.
|
|
|
|
||
| 2026-07-18 14:18:58 |
SUCCESS
|
CheckIfAuthorizationEndpointError
No error from authorization endpoint
|
|
|
||
| 2026-07-18 14:18:58 |
SUCCESS
|
CheckStateInAuthorizationResponse
State in response correctly returned
|
||
|
||||
| 2026-07-18 14:18:58 |
SUCCESS
|
ExtractAuthorizationCodeFromAuthorizationResponse
Found authorization code
|
||
|
||||
| 2026-07-18 14:18:58 |
SUCCESS
|
CreateTokenEndpointRequestForAuthorizationCodeGrant
Created token endpoint request
|
||||||
|
||||||||
| 2026-07-18 14:18:58 |
SUCCESS
|
AddBasicAuthClientSecretToRequest
Added basic authorization header
|
||
|
||||
| 2026-07-18 14:18:58 |
|
CallTokenEndpointAndReturnFullResponse
HTTP request
|
||||||||
|
||||||||||
| 2026-07-18 14:18:58 |
RESPONSE
|
CallTokenEndpointAndReturnFullResponse
HTTP response
|
||||||||
|
||||||||||
| 2026-07-18 14:18:58 |
SUCCESS
|
CallTokenEndpointAndReturnFullResponse
Parsed token endpoint response
|
||||||||||
|
||||||||||||
| 2026-07-18 14:18:58 |
SUCCESS
|
CheckTokenEndpointHttpStatus200
Token endpoint http status code was 200
|
|
|
||
| 2026-07-18 14:18:58 |
SUCCESS
|
CheckIfTokenEndpointResponseError
No error from token endpoint
|
|
|
||
| 2026-07-18 14:18:58 |
SUCCESS
|
CheckForAccessTokenValue
Found an access token
|
||
|
||||
| 2026-07-18 14:18:58 |
SUCCESS
|
ExtractAccessTokenFromTokenResponse
Extracted the access token
|
||||
|
||||||
| 2026-07-18 14:18:58 | SUCCESS |
ExtractExpiresInFromTokenEndpointResponse
Extracted 'expires_in'
|
||
|
||||
| 2026-07-18 14:18:58 | SUCCESS |
ValidateExpiresIn
expires_in passed all validation checks
|
||
|
||||
| 2026-07-18 14:18:58 |
SUCCESS
|
CheckForRefreshTokenValue
Found a refresh token
|
||
|
||||
| 2026-07-18 14:18:58 | INFO |
ValidateIdTokenFromTokenResponseEncryption
Skipped evaluation due to missing required object: client_jwks
|
||||
|
||||||
| 2026-07-18 14:18:58 | SUCCESS |
ExtractIdTokenFromTokenResponse
Found and parsed the id_token from token_endpoint_response
|
||||||
|
||||||||
| 2026-07-18 14:18:58 | SUCCESS |
ValidateIdToken
ID token iss, aud, exp, iat, auth_time, acr & nbf claims passed validation checks
|
|
|
||
| 2026-07-18 14:18:58 |
ValidateIdTokenStandardClaims
sub is a string with content
|
|
|
|
||
| 2026-07-18 14:18:58 | SUCCESS |
ValidateIdTokenStandardClaims
id_token claims are valid
|
|
|
||
| 2026-07-18 14:18:58 | SUCCESS |
ValidateIdTokenNonce
Nonce values match
|
||
|
||||
| 2026-07-18 14:18:58 | SUCCESS |
ValidateIdTokenACRClaimAgainstRequest
Nothing to check; the conformance suite did not request an acr claim in request object
|
|
|
||
| 2026-07-18 14:18:58 |
SUCCESS
|
ValidateIdTokenSignature
id_token signature validated
|
||
|
||||
| 2026-07-18 14:18:58 | SUCCESS |
CheckForSubjectInIdToken
Found 'sub' in id_token
|
||
|
||||
| 2026-07-18 14:18:58 |
EnsureIdTokenUpdatedAtValid
id_token response does not contain 'updated_at'
|
|
|
|
||
| 2026-07-18 14:18:58 | INFO |
ValidateEncryptedIdTokenHasKid
Skipped evaluation due to missing required element: id_token jwe_header
|
||||||
|
||||||||
| Second authorization: Userinfo endpoint tests |
| 2026-07-18 14:18:58 |
|
CallProtectedResource
HTTP request
|
||||||||
|
||||||||||
| 2026-07-18 14:18:59 |
RESPONSE
|
CallProtectedResource
HTTP response
|
||||||||
|
||||||||||
| 2026-07-18 14:18:59 |
SUCCESS
|
CallProtectedResource
Got a response from the resource endpoint
|
||||||||
|
||||||||||
| 2026-07-18 14:18:59 |
SUCCESS
|
EnsureHttpStatusCodeIs200
resource endpoint returned the expected http status
|
||||
|
||||||
| 2026-07-18 14:18:59 | SUCCESS |
CheckIdTokenAuthTimeClaimPresentDueToMaxAge
auth_time is present in the id_token, as required for a authentication where the max_age parameter was used
|
||
|
||||
| 2026-07-18 14:18:59 | SUCCESS |
CheckIdTokenAuthTimeClaimsSameIfPresent
auth_time is the same in the second id_token
|
||||
|
||||||
| 2026-07-18 14:18:59 | SUCCESS |
CheckIdTokenSubConsistentForSecondAuthorization
sub is the same in the second id_token
|
||||
|
||||||
| 2026-07-18 14:18:59 |
FINISHED
|
oidcc-max-age-10000
Test has run to completion
|
||
|
||||
| 2026-07-18 14:19:52 |
|
TEST-RUNNER
Alias has now been claimed by another test
|
||||
|
||||||