Test Name | fapi1-advanced-final-ensure-authorization-code-is-bound-to-client |
---|---|
Variant | client_auth_type=mtls, fapi_auth_request_method=by_value, fapi_profile=openbanking_brazil, fapi_response_mode=plain_response |
Test ID | MIqB28VLAThoJ9m https://www.certification.openid.net/log-detail.html?public=true&log=MIqB28VLAThoJ9m |
Created | 2021-07-07T20:10:34.659909Z |
Description | Teste AuthServer Dan |
Test Version | 4.1.18 |
Test Owner | 102163611629238736306 https://accounts.google.com |
Plan ID | QUlbXUlffhNex https://www.certification.openid.net/plan-detail.html?public=true&plan=QUlbXUlffhNex |
Exported From | https://www.certification.openid.net |
Exported By | 102163611629238736306 https://accounts.google.com |
Suite Version | 4.1.18 |
Exported | 2021-07-07 20:38:27 (UTC) |
Status: FINISHED Result: WARNING |
SUCCESS 98 FAILURE 0 WARNING 1 REVIEW 0 INFO 1 |
2021-07-07 20:10:36 |
INFO
|
TEST-RUNNER
Test instance MIqB28VLAThoJ9m created
|
||||||||||||||
|
2021-07-07 20:10:36 |
SUCCESS
|
CreateRedirectUri
Created redirect URI
|
||
|
2021-07-07 20:10:36 |
|
GetDynamicServerConfiguration
HTTP request
|
||||||||
|
2021-07-07 20:10:36 |
RESPONSE
|
GetDynamicServerConfiguration
HTTP response
|
||||||||
|
2021-07-07 20:10:36 |
|
GetDynamicServerConfiguration
Downloaded server configuration
|
||
|
2021-07-07 20:10:36 |
SUCCESS
|
GetDynamicServerConfiguration
Successfully parsed server configuration
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
2021-07-07 20:10:36 | SUCCESS |
AddMTLSEndpointAliasesToEnvironment
Added mtls_endpoint_aliases to environment
|
||
|
2021-07-07 20:10:36 |
SUCCESS
|
CheckServerConfiguration
Found required server configuration keys
|
||
|
2021-07-07 20:10:36 |
|
FetchServerKeys
Fetching server key
|
||
|
2021-07-07 20:10:36 |
|
FetchServerKeys
HTTP request
|
||||||||
|
2021-07-07 20:10:37 |
RESPONSE
|
FetchServerKeys
HTTP response
|
||||||||
|
2021-07-07 20:10:37 |
|
FetchServerKeys
Found JWK set string
|
||
|
2021-07-07 20:10:37 |
SUCCESS
|
FetchServerKeys
Found server JWK set
|
||
|
2021-07-07 20:10:37 |
SUCCESS
|
CheckServerKeysIsValid
Server JWKs is valid
|
||
|
2021-07-07 20:10:37 | SUCCESS |
ValidateServerJWKs
Valid server JWKs: keys are valid JSON, contain the required fields and are correctly encoded using unpadded base64url
|
|
2021-07-07 20:10:37 | SUCCESS |
CheckForKeyIdInServerJWKs
All keys contain kids
|
|
2021-07-07 20:10:37 | SUCCESS |
EnsureServerJwksDoesNotContainPrivateOrSymmetricKeys
Jwks does not contain any private or symmetric keys
|
|
2021-07-07 20:10:37 | SUCCESS |
FAPIEnsureMinimumServerKeyLength
Validated minimum key lengths for server_jwks
|
||
|
2021-07-07 20:10:37 |
SUCCESS
|
GetStaticClientConfiguration
Found a static client object
|
||||||
|
2021-07-07 20:10:37 |
SUCCESS
|
ValidateMTLSCertificatesHeader
MTLS certificates header is valid
|
|
2021-07-07 20:10:37 |
SUCCESS
|
ExtractMTLSCertificatesFromConfiguration
Mutual TLS authentication credentials loaded
|
||||||
|
2021-07-07 20:10:37 | SUCCESS |
ValidateClientJWKsPrivatePart
Valid client JWKs: keys are valid JSON, contain the required fields, the private/public exponents match and are correctly encoded using unpadded base64url
|
|
2021-07-07 20:10:37 |
SUCCESS
|
ExtractJWKsFromStaticClientConfiguration
Extracted client JWK
|
||||
|
2021-07-07 20:10:37 | SUCCESS |
CheckForKeyIdInClientJWKs
All keys contain kids
|
|
2021-07-07 20:10:37 | SUCCESS |
CheckDistinctKeyIdValueInClientJWKs
Distinct 'kid' value in all keys of client_jwks
|
||
|
2021-07-07 20:10:37 | SUCCESS |
FAPIBrazilCheckKeyAlgInClientJWKs
Keys in client JWKS all have permitted 'alg'
|
||
|
2021-07-07 20:10:37 | SUCCESS |
FAPIEnsureMinimumClientKeyLength
Validated minimum key lengths for client_jwks
|
||
|
2021-07-07 20:10:37 |
SUCCESS
|
ValidateMTLSCertificatesAsX509
Mutual TLS authentication cert validated as X.509
|
|
Verify configuration of second client |
2021-07-07 20:10:37 |
SUCCESS
|
GetStaticClient2Configuration
Found a static second client object
|
||||||
|
2021-07-07 20:10:37 |
SUCCESS
|
ValidateMTLSCertificates2Header
MTLS certificates header is valid
|
|
2021-07-07 20:10:37 |
SUCCESS
|
ExtractMTLSCertificates2FromConfiguration
Mutual TLS authentication credentials loaded
|
||||||
|
2021-07-07 20:10:37 | SUCCESS |
ValidateClientJWKsPrivatePart
Valid client JWKs: keys are valid JSON, contain the required fields, the private/public exponents match and are correctly encoded using unpadded base64url
|
|
2021-07-07 20:10:37 |
SUCCESS
|
ExtractJWKsFromStaticClientConfiguration
Extracted client JWK
|
||||
|
2021-07-07 20:10:37 | SUCCESS |
CheckForKeyIdInClientJWKs
All keys contain kids
|
|
2021-07-07 20:10:37 | SUCCESS |
CheckDistinctKeyIdValueInClientJWKs
Distinct 'kid' value in all keys of client_jwks
|
||
|
2021-07-07 20:10:37 | SUCCESS |
FAPIBrazilCheckKeyAlgInClientJWKs
Keys in client JWKS all have permitted 'alg'
|
||
|
2021-07-07 20:10:37 | SUCCESS |
FAPIEnsureMinimumClientKeyLength
Validated minimum key lengths for client_jwks
|
||
|
2021-07-07 20:10:37 |
SUCCESS
|
ValidateMTLSCertificatesAsX509
Mutual TLS authentication cert validated as X.509
|
|
2021-07-07 20:10:37 |
SUCCESS
|
GetResourceEndpointConfiguration
Found a resource endpoint object
|
||||||
|
2021-07-07 20:10:37 |
SUCCESS
|
SetProtectedResourceUrlToSingleResourceEndpoint
Set protected resource URL
|
||
|
2021-07-07 20:10:37 |
SUCCESS
|
ExtractTLSTestValuesFromResourceConfiguration
Extracted TLS information from resource endpoint
|
||
|
2021-07-07 20:10:37 |
SUCCESS
|
ExtractTLSTestValuesFromOBResourceConfiguration
Extracted TLS information from resource endpoint
|
||||
|
2021-07-07 20:10:37 |
|
fapi1-advanced-final-ensure-authorization-code-is-bound-to-client
Setup Done
|
|
Use client_credentials grant to obtain Brazil consent |
2021-07-07 20:10:37 |
SUCCESS
|
CreateTokenEndpointRequestForClientCredentialsGrant
|
||||
|
2021-07-07 20:10:37 |
SUCCESS
|
SetConsentsScopeOnTokenEndpointRequest
Set scope parameter to 'consents'
|
||||
|
2021-07-07 20:10:37 |
SUCCESS
|
AddClientIdToTokenEndpointRequest
|
||||||
|
2021-07-07 20:10:37 |
|
CallTokenEndpoint
HTTP request
|
||||||||||
|
2021-07-07 20:10:38 |
RESPONSE
|
CallTokenEndpoint
HTTP response
|
||||||||
|
2021-07-07 20:10:38 |
|
CallTokenEndpoint
Token endpoint response
|
||
|
2021-07-07 20:10:38 |
SUCCESS
|
CallTokenEndpoint
Parsed token endpoint response
|
||||||||
|
2021-07-07 20:10:38 |
SUCCESS
|
CheckIfTokenEndpointResponseError
No error from token endpoint
|
|
2021-07-07 20:10:38 |
SUCCESS
|
CheckForAccessTokenValue
Found an access token
|
||
|
2021-07-07 20:10:38 |
SUCCESS
|
ExtractAccessTokenFromTokenResponse
Extracted the access token
|
||||
|
2021-07-07 20:10:38 | SUCCESS |
ExtractExpiresInFromTokenEndpointResponse
Extracted 'expires_in'
|
||
|
2021-07-07 20:10:38 | SUCCESS |
ValidateExpiresIn
expires_in passed all validation checks
|
||
|
2021-07-07 20:10:38 |
|
CreateEmptyResourceEndpointRequestHeaders
Created empty headers
|
||
|
2021-07-07 20:10:38 |
SUCCESS
|
AddFAPIAuthDateToResourceEndpointRequest
Added x-fapi-auth-date to resource endpoint request headers
|
||
|
2021-07-07 20:10:38 |
SUCCESS
|
FAPIBrazilCreateConsentRequest
|
||
|
2021-07-07 20:10:38 |
SUCCESS
|
FAPIBrazilAddExpirationToConsentRequest
Added expiration time to consent request
|
||
|
2021-07-07 20:10:38 |
|
CallConsentEndpointWithBearerToken
HTTP request
|
||||||||||
|
2021-07-07 20:10:39 |
RESPONSE
|
CallConsentEndpointWithBearerToken
HTTP response
|
||||||||
|
2021-07-07 20:10:39 |
|
CallConsentEndpointWithBearerToken
Consent endpoint response
|
||
|
2021-07-07 20:10:39 |
SUCCESS
|
CallConsentEndpointWithBearerToken
Parsed consent endpoint response
|
||||
|
2021-07-07 20:10:39 | SUCCESS |
CheckForFAPIInteractionIdInResourceResponse
Found x-fapi-interaction-id
|
||
|
2021-07-07 20:10:39 |
SUCCESS
|
ExtractConsentIdFromConsentEndpointResponse
Extracted the consent id
|
||
|
2021-07-07 20:10:39 |
SUCCESS
|
FAPIBrazilAddConsentIdToClientScope
Added scope of 'openid accounts resources consent:urn:orginalapp:65f36525-1bbc-4b83-b02b-e9d012db3876' to client's scope
|
||||||
|
Make request to authorization endpoint |
2021-07-07 20:10:39 |
SUCCESS
|
CreateAuthorizationEndpointRequestFromClientInformation
Created authorization endpoint request
|
||||||
|
2021-07-07 20:10:39 |
|
CreateRandomStateValue
Created state value
|
||||
|
2021-07-07 20:10:39 |
SUCCESS
|
AddStateToAuthorizationEndpointRequest
Added state parameter to request
|
||||||||
|
2021-07-07 20:10:39 |
|
CreateRandomNonceValue
Created nonce value
|
||||
|
2021-07-07 20:10:39 |
SUCCESS
|
AddNonceToAuthorizationEndpointRequest
Added nonce parameter to request
|
||||||||||
|
2021-07-07 20:10:39 |
SUCCESS
|
SetAuthorizationEndpointRequestResponseTypeToCodeIdtoken
Added response_type parameter to request
|
||||||||||||
|
2021-07-07 20:10:39 |
SUCCESS
|
ConvertAuthorizationEndpointRequestToRequestObject
Created request object claims
|
||
|
2021-07-07 20:10:39 | SUCCESS |
AddNbfToRequestObject
Added nbf to request object claims
|
||
|
2021-07-07 20:10:39 | SUCCESS |
AddExpToRequestObject
Added exp to request object claims
|
||
|
2021-07-07 20:10:39 | SUCCESS |
AddAudToRequestObject
Added aud to request object claims
|
||
|
2021-07-07 20:10:39 | SUCCESS |
AddIssToRequestObject
Added iss to request object claims
|
||
|
2021-07-07 20:10:39 | SUCCESS |
AddClientIdToRequestObject
Added client_id to request object claims
|
||
|
2021-07-07 20:10:39 |
SUCCESS
|
SignRequestObject
Signed the request object
|
||||||||
|
2021-07-07 20:10:39 |
|
FAPIBrazilEncryptRequestObject
Encrypted the request object
|
||||||
|
2021-07-07 20:10:39 |
SUCCESS
|
BuildRequestObjectByValueRedirectToAuthorizationEndpoint
Sending to authorization endpoint
|
||
|
2021-07-07 20:10:39 |
REDIRECT
|
fapi1-advanced-final-ensure-authorization-code-is-bound-to-client
Redirecting to authorization endpoint
|
||
|
2021-07-07 20:10:45 |
INCOMING
|
fapi1-advanced-final-ensure-authorization-code-is-bound-to-client
Incoming HTTP request to test instance MIqB28VLAThoJ9m
|
||||||||||||||
|
2021-07-07 20:10:45 |
SUCCESS
|
CreateRandomImplicitSubmitUrl
Created random implicit submission URL
|
||
|
2021-07-07 20:10:45 |
OUTGOING
|
fapi1-advanced-final-ensure-authorization-code-is-bound-to-client
Response to HTTP request to test instance MIqB28VLAThoJ9m
|
||||
|
2021-07-07 20:10:46 |
INCOMING
|
fapi1-advanced-final-ensure-authorization-code-is-bound-to-client
Incoming HTTP request to test instance MIqB28VLAThoJ9m
|
||||||||||||||
|
2021-07-07 20:10:46 |
OUTGOING
|
fapi1-advanced-final-ensure-authorization-code-is-bound-to-client
Response to HTTP request to test instance MIqB28VLAThoJ9m
|
||||||||
|
2021-07-07 20:10:46 |
|
ExtractImplicitHashToCallbackResponse
Extracted response from URL fragment
|
||
|
2021-07-07 20:10:46 |
SUCCESS
|
ExtractImplicitHashToCallbackResponse
Extracted the hash values
|
||||||||||
|
2021-07-07 20:10:46 |
REDIRECT-IN
|
fapi1-advanced-final-ensure-authorization-code-is-bound-to-client
Authorization endpoint response captured
|
||||||||||
|
Verify authorization endpoint response |
2021-07-07 20:10:46 | SUCCESS |
RejectErrorInUrlQuery
'error' is not present in URL query returned from authorization endpoint
|
|
2021-07-07 20:10:46 | SUCCESS |
RejectAuthCodeInUrlQuery
Authorization code is not present in URL query returned from authorization endpoint
|
|
2021-07-07 20:10:46 |
SUCCESS
|
CheckMatchingCallbackParameters
Callback parameters successfully verified
|
|
2021-07-07 20:10:46 | SUCCESS |
RejectStateInUrlQueryForHybridFlow
state is correctly not present in URL query returned from authorization endpoint (as in the hybrid flow it must be returned in the URL fragment/hash only)
|
|
2021-07-07 20:10:46 |
SUCCESS
|
CheckIfAuthorizationEndpointError
No error from authorization endpoint
|
|
2021-07-07 20:10:46 |
WARNING
|
ValidateSuccessfulHybridResponseFromAuthorizationEndpoint
authorization endpoint response includes unexpected parameters. This may be because the authorization server supports protocol extensions the conformance suite is unaware of, but may also be because the server is implementing the specification incorrectly.
|
||
|
2021-07-07 20:10:46 | SUCCESS |
CheckStateInAuthorizationResponse
State in response correctly returned
|
||
|
2021-07-07 20:10:46 |
|
ValidateIssInAuthorizationResponse
No 'iss' value in authorization response.
|
|
2021-07-07 20:10:46 |
SUCCESS
|
ExtractAuthorizationCodeFromAuthorizationResponse
Found authorization code
|
||
|
2021-07-07 20:10:46 | SUCCESS |
EnsureMinimumAuthorizationCodeLength
Authorization code is of sufficient length
|
||||
|
2021-07-07 20:10:46 | SUCCESS |
EnsureMinimumAuthorizationCodeEntropy
Calculated shannon entropy seems sufficient
|
||||
|
2021-07-07 20:10:46 | SUCCESS |
ExtractIdTokenFromAuthorizationResponse
Found and parsed the id_token from authorization_endpoint_response
|
||||||
|
2021-07-07 20:10:46 | SUCCESS |
ValidateIdToken
ID token iss, aud, exp, iat, auth_time, acr & nbf claims passed validation checks
|
|
2021-07-07 20:10:46 | SUCCESS |
EnsureIdTokenContainsKid
kid was found in the ID token header
|
||
|
2021-07-07 20:10:46 | SUCCESS |
ValidateIdTokenNonce
Nonce values match
|
||
|
2021-07-07 20:10:46 | SUCCESS |
ValidateIdTokenSignature
id_token signature validated
|
||
|
2021-07-07 20:10:46 | SUCCESS |
ValidateIdTokenSignatureUsingKid
id_token signature validated
|
||
|
2021-07-07 20:10:46 | SUCCESS |
CheckForSubjectInIdToken
Found 'sub' in id_token
|
||
|
2021-07-07 20:10:46 | SUCCESS |
ExtractSHash
Extracted s_hash from ID Token
|
||||
|
2021-07-07 20:10:46 | SUCCESS |
ValidateSHash
s_hash validated successfully
|
||||||
|
2021-07-07 20:10:46 | SUCCESS |
ExtractCHash
Extracted c_hash from ID Token
|
||||
|
2021-07-07 20:10:46 | SUCCESS |
ValidateCHash
c_hash validated successfully
|
||||||
|
2021-07-07 20:10:46 |
SUCCESS
|
CreateTokenEndpointRequestForAuthorizationCodeGrant
|
||||||
|
2021-07-07 20:10:46 |
SUCCESS
|
AddClientIdToTokenEndpointRequest
|
||||||||
|
2021-07-07 20:10:46 |
SUCCESS
|
ValidateMTLSCertificates2Header
MTLS certificates header is valid
|
|
2021-07-07 20:10:46 |
SUCCESS
|
ExtractMTLSCertificates2FromConfiguration
Mutual TLS authentication credentials loaded
|
||||||
|
2021-07-07 20:10:46 |
SUCCESS
|
CreateTokenEndpointRequestForAuthorizationCodeGrant
|
||||||
|
2021-07-07 20:10:46 |
SUCCESS
|
AddClientIdToTokenEndpointRequest
|
||||||||
|
2021-07-07 20:10:46 |
|
CallTokenEndpointAndReturnFullResponse
HTTP request
|
||||||||||
|
2021-07-07 20:10:47 |
RESPONSE
|
CallTokenEndpointAndReturnFullResponse
HTTP response
|
||||||||
|
2021-07-07 20:10:47 | SUCCESS |
CallTokenEndpointAndReturnFullResponse
Parsed token endpoint response
|
||||
|
2021-07-07 20:10:47 | SUCCESS |
CheckTokenEndpointHttpStatus400
Token endpoint http status code was 400
|
|
2021-07-07 20:10:47 | SUCCESS |
CheckTokenEndpointReturnedJsonContentType
token_endpoint_response_headers Content-Type: header is application/json
|
|
2021-07-07 20:10:47 | SUCCESS |
CheckErrorFromTokenEndpointResponseErrorInvalidGrant
Token Endpoint response error returned expected 'error' of 'invalid_grant'
|
||
|
2021-07-07 20:10:47 | SUCCESS |
ValidateErrorFromTokenEndpointResponseError
Token endpoint response error returned valid 'error' field
|
||
|
2021-07-07 20:10:47 | SUCCESS |
CheckErrorDescriptionFromTokenEndpointResponseErrorContainsCRLFTAB
token_endpoint_response 'error_description' field does not include CR/LF/TAB
|
||
|
2021-07-07 20:10:47 | SUCCESS |
ValidateErrorDescriptionFromTokenEndpointResponseError
token_endpoint_response error returned valid 'error_description' field
|
||
|
2021-07-07 20:10:47 | SUCCESS |
ValidateErrorUriFromTokenEndpointResponseError
token_endpoint_response did not include optional 'error_uri' field
|
|
2021-07-07 20:10:47 |
FINISHED
|
fapi1-advanced-final-ensure-authorization-code-is-bound-to-client
Test has run to completion
|
||
|