Test Name | fapi1-advanced-final |
---|---|
Variant | client_auth_type=mtls, fapi_auth_request_method=by_value, fapi_profile=plain_fapi, fapi_response_mode=jarm |
Test ID | lNoJ6BmfPDV2tHJ https://www.certification.openid.net/log-detail.html?public=true&log=lNoJ6BmfPDV2tHJ |
Created | 2022-07-18T20:29:51.970147Z |
Description | |
Test Version | 4.1.45 |
Test Owner | 102081685218744222837 https://accounts.google.com |
Plan ID | kTLR7Tdfkbqur https://www.certification.openid.net/plan-detail.html?public=true&plan=kTLR7Tdfkbqur |
Exported From | https://www.certification.openid.net |
Exported By | 102081685218744222837 https://accounts.google.com |
Suite Version | 4.1.45 |
Exported | 2022-07-18 21:19:17 (UTC) |
Status: FINISHED Result: PASSED |
SUCCESS 181 FAILURE 0 WARNING 0 REVIEW 0 INFO 31 |
2022-07-18 20:29:51 |
INFO
|
TEST-RUNNER
Test instance lNoJ6BmfPDV2tHJ created
|
||||||||||||||
|
2022-07-18 20:29:52 |
SUCCESS
|
CreateRedirectUri
Created redirect URI
|
||
|
2022-07-18 20:29:52 |
|
GetDynamicServerConfiguration
HTTP request
|
||||||||
|
2022-07-18 20:29:52 |
RESPONSE
|
GetDynamicServerConfiguration
HTTP response
|
||||||||
|
2022-07-18 20:29:52 |
SUCCESS
|
GetDynamicServerConfiguration
Successfully parsed server configuration
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
2022-07-18 20:29:52 | SUCCESS |
AddMTLSEndpointAliasesToEnvironment
Added mtls_endpoint_aliases to environment
|
|
2022-07-18 20:29:52 |
SUCCESS
|
CheckServerConfiguration
Found required server configuration keys
|
||
|
2022-07-18 20:29:52 |
|
FetchServerKeys
Fetching server key
|
||
|
2022-07-18 20:29:52 |
|
FetchServerKeys
HTTP request
|
||||||||
|
2022-07-18 20:29:52 |
RESPONSE
|
FetchServerKeys
HTTP response
|
||||||||
|
2022-07-18 20:29:52 |
|
FetchServerKeys
Found JWK set string
|
||
|
2022-07-18 20:29:52 |
SUCCESS
|
FetchServerKeys
Found server JWK set
|
||
|
2022-07-18 20:29:52 |
SUCCESS
|
CheckServerKeysIsValid
Server JWKs is valid
|
||
|
2022-07-18 20:29:52 | SUCCESS |
ValidateServerJWKs
Valid server JWKs: keys are valid JSON, contain the required fields and are correctly encoded using unpadded base64url
|
|
2022-07-18 20:29:52 | SUCCESS |
CheckForKeyIdInServerJWKs
All keys contain kids
|
|
2022-07-18 20:29:52 | SUCCESS |
EnsureServerJwksDoesNotContainPrivateOrSymmetricKeys
Jwks does not contain any private or symmetric keys
|
|
2022-07-18 20:29:52 | SUCCESS |
FAPIEnsureMinimumServerKeyLength
Validated minimum key lengths for server_jwks
|
||
|
2022-07-18 20:29:52 |
SUCCESS
|
GetStaticClientConfiguration
Found a static client object
|
||||||
|
2022-07-18 20:29:52 |
|
ValidateMTLSCertificatesHeader
No certificate authority found for MTLS
|
|
2022-07-18 20:29:52 |
SUCCESS
|
ValidateMTLSCertificatesHeader
MTLS certificates header is valid
|
|
2022-07-18 20:29:52 |
|
ExtractMTLSCertificatesFromConfiguration
No certificate authority found for MTLS
|
|
2022-07-18 20:29:52 |
SUCCESS
|
ExtractMTLSCertificatesFromConfiguration
Mutual TLS authentication credentials loaded
|
||||
|
2022-07-18 20:29:52 | 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
|
|
2022-07-18 20:29:52 |
SUCCESS
|
ExtractJWKsFromStaticClientConfiguration
Extracted client JWK
|
||||
|
2022-07-18 20:29:52 | SUCCESS |
CheckForKeyIdInClientJWKs
All keys contain kids
|
|
2022-07-18 20:29:52 | SUCCESS |
CheckDistinctKeyIdValueInClientJWKs
Distinct 'kid' value in all keys of client_jwks
|
||
|
2022-07-18 20:29:52 | SUCCESS |
FAPICheckKeyAlgInClientJWKs
Keys in client JWKS all have permitted 'alg'
|
||
|
2022-07-18 20:29:52 | SUCCESS |
FAPIEnsureMinimumClientKeyLength
Validated minimum key lengths for client_jwks
|
||
|
2022-07-18 20:29:52 |
SUCCESS
|
ValidateMTLSCertificatesAsX509
Mutual TLS authentication cert validated as X.509
|
|
Verify configuration of second client |
2022-07-18 20:29:52 |
SUCCESS
|
GetStaticClient2Configuration
Found a static second client object
|
||||||
|
2022-07-18 20:29:52 |
|
ValidateMTLSCertificates2Header
No certificate authority found for MTLS
|
|
2022-07-18 20:29:52 |
SUCCESS
|
ValidateMTLSCertificates2Header
MTLS certificates header is valid
|
|
2022-07-18 20:29:52 |
|
ExtractMTLSCertificates2FromConfiguration
No certificate authority found for MTLS
|
|
2022-07-18 20:29:52 |
SUCCESS
|
ExtractMTLSCertificates2FromConfiguration
Mutual TLS authentication credentials loaded
|
||||
|
2022-07-18 20:29:52 | 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
|
|
2022-07-18 20:29:52 |
SUCCESS
|
ExtractJWKsFromStaticClientConfiguration
Extracted client JWK
|
||||
|
2022-07-18 20:29:52 | SUCCESS |
CheckForKeyIdInClientJWKs
All keys contain kids
|
|
2022-07-18 20:29:52 | SUCCESS |
CheckDistinctKeyIdValueInClientJWKs
Distinct 'kid' value in all keys of client_jwks
|
||
|
2022-07-18 20:29:52 | SUCCESS |
FAPICheckKeyAlgInClientJWKs
Keys in client JWKS all have permitted 'alg'
|
||
|
2022-07-18 20:29:52 | SUCCESS |
FAPIEnsureMinimumClientKeyLength
Validated minimum key lengths for client_jwks
|
||
|
2022-07-18 20:29:52 |
SUCCESS
|
ValidateMTLSCertificatesAsX509
Mutual TLS authentication cert validated as X.509
|
|
2022-07-18 20:29:52 |
SUCCESS
|
ValidateClientPrivateKeysAreDifferent
Client signing JWKs have different thumbprints
|
||||
|
2022-07-18 20:29:52 |
SUCCESS
|
GetResourceEndpointConfiguration
Found a resource endpoint object
|
||
|
2022-07-18 20:29:52 |
SUCCESS
|
SetProtectedResourceUrlToSingleResourceEndpoint
Set protected resource URL
|
||
|
2022-07-18 20:29:52 |
SUCCESS
|
ExtractTLSTestValuesFromResourceConfiguration
Extracted TLS information from resource endpoint
|
||
|
2022-07-18 20:29:52 |
SUCCESS
|
ExtractTLSTestValuesFromOBResourceConfiguration
Extracted TLS information from resource endpoint
|
||||
|
2022-07-18 20:29:52 |
|
fapi1-advanced-final
Setup Done
|
|
Make request to authorization endpoint |
2022-07-18 20:29:52 |
SUCCESS
|
CreateAuthorizationEndpointRequestFromClientInformation
Created authorization endpoint request
|
||||||
|
2022-07-18 20:29:52 |
SUCCESS
|
AddAcrClaimToAuthorizationEndpointRequest
Added acr claim to authorization_endpoint_request
|
||
|
2022-07-18 20:29:52 |
|
CreateRandomStateValue
Created state value
|
||||
|
2022-07-18 20:29:52 |
SUCCESS
|
AddStateToAuthorizationEndpointRequest
Added state parameter to request
|
||||||||||
|
2022-07-18 20:29:52 |
|
CreateRandomNonceValue
Created nonce value
|
||||
|
2022-07-18 20:29:52 |
SUCCESS
|
AddNonceToAuthorizationEndpointRequest
Added nonce parameter to request
|
||||||||||||
|
2022-07-18 20:29:52 |
SUCCESS
|
SetAuthorizationEndpointRequestResponseTypeToCode
Added response_type parameter to request
|
||||||||||||||
|
2022-07-18 20:29:52 |
SUCCESS
|
SetAuthorizationEndpointRequestResponseModeToJWT
Added response_mode parameter to request
|
||||||||||||||||
|
2022-07-18 20:29:52 |
SUCCESS
|
ConvertAuthorizationEndpointRequestToRequestObject
Created request object claims
|
||
|
2022-07-18 20:29:52 | SUCCESS |
AddNbfToRequestObject
Added nbf to request object claims
|
||
|
2022-07-18 20:29:52 | SUCCESS |
AddExpToRequestObject
Added exp to request object claims
|
||
|
2022-07-18 20:29:52 | SUCCESS |
AddAudToRequestObject
Added aud to request object claims
|
||
|
2022-07-18 20:29:52 | SUCCESS |
AddIssToRequestObject
Added iss to request object claims
|
||
|
2022-07-18 20:29:52 | SUCCESS |
AddClientIdToRequestObject
Added client_id to request object claims
|
||
|
2022-07-18 20:29:52 |
SUCCESS
|
SignRequestObject
Signed the request object
|
||||||||
|
2022-07-18 20:29:52 |
SUCCESS
|
BuildRequestObjectByValueRedirectToAuthorizationEndpoint
Sending to authorization endpoint
|
||
|
2022-07-18 20:29:52 |
REDIRECT
|
fapi1-advanced-final
Redirecting to authorization endpoint
|
||
|
2022-07-18 20:29:52 |
|
WebRunner
Scripted browser HTTP request
|
||||||
|
2022-07-18 20:29:53 |
RESPONSE
|
WebRunner
Scripted browser HTTP response
|
||||||||
|
2022-07-18 20:29:53 |
INFO
|
WebRunner
Waiting
|
||||||||||||||||
|
2022-07-18 20:29:53 |
INFO
|
WebRunner
Entering text
|
||||||||||||
|
2022-07-18 20:29:53 |
INFO
|
WebRunner
Entering text
|
||||||||||||
|
2022-07-18 20:29:53 |
INFO
|
WebRunner
Clicking an element
|
||||||||||
|
2022-07-18 20:29:54 |
INFO
|
WebRunner
Completed processing of webpage
|
||||||||||||
|
2022-07-18 20:29:54 |
INFO
|
WebRunner
Clicking an element
|
||||||||||
|
2022-07-18 20:29:54 |
INCOMING
|
fapi1-advanced-final
Incoming HTTP request to /test/a/pingidentity-pingfederate-fapi-adv-op-mtls-value-jarm/callback
|
||||||||||||||||||||||
|
2022-07-18 20:29:54 |
SUCCESS
|
CreateRandomImplicitSubmitUrl
Created random implicit submission URL
|
||
|
2022-07-18 20:29:54 |
OUTGOING
|
fapi1-advanced-final
Response to HTTP request to test instance lNoJ6BmfPDV2tHJ
|
||||
|
2022-07-18 20:29:54 |
INFO
|
WebRunner
Completed processing of webpage
|
||||||||||||
|
2022-07-18 20:29:54 |
INFO
|
WebRunner
Waiting
|
||||||||||||||||
|
2022-07-18 20:29:54 |
INCOMING
|
fapi1-advanced-final
Incoming HTTP request to /test/a/pingidentity-pingfederate-fapi-adv-op-mtls-value-jarm/implicit/c1CVWr4zp8zCbmyGvFIy
|
||||||||||||||||||||||
|
2022-07-18 20:29:54 |
OUTGOING
|
fapi1-advanced-final
Response to HTTP request to test instance lNoJ6BmfPDV2tHJ
|
||||||||
|
2022-07-18 20:29:54 |
SUCCESS
|
ExtractImplicitHashToCallbackResponse
implicit_hash is empty
|
|
2022-07-18 20:29:54 |
REDIRECT-IN
|
fapi1-advanced-final
Authorization endpoint response captured
|
||||||||||
|
Verify authorization endpoint response |
2022-07-18 20:29:54 | SUCCESS |
ExtractJARMFromURLQuery
Found and parsed the jarm_response from callback_query_params
|
||||||
|
2022-07-18 20:29:54 | SUCCESS |
RejectNonJarmResponsesInUrlQuery
Authorization endpoint response only includes the JARM JWT.
|
|
2022-07-18 20:29:54 |
SUCCESS
|
ExtractAuthorizationEndpointResponseFromJARMResponse
Extracted the authorization response
|
||||||
|
2022-07-18 20:29:54 | SUCCESS |
ValidateJARMResponse
JARM response standard JWT claims are valid
|
|
2022-07-18 20:29:54 | SUCCESS |
ValidateJARMExpRecommendations
JARM response 'exp' is less than 10 minutes
|
||||
|
2022-07-18 20:29:54 | SUCCESS |
ValidateJARMSignatureUsingKid
jarm_response signature validated
|
||
|
2022-07-18 20:29:54 | SUCCESS |
RejectAuthCodeInUrlQuery
Authorization code is not present in URL query returned from authorization endpoint
|
|
2022-07-18 20:29:54 |
SUCCESS
|
CheckMatchingCallbackParameters
Callback parameters successfully verified
|
|
2022-07-18 20:29:54 | 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)
|
|
2022-07-18 20:29:54 |
SUCCESS
|
CheckIfAuthorizationEndpointError
No error from authorization endpoint
|
|
2022-07-18 20:29:54 |
SUCCESS
|
ValidateSuccessfulJARMResponseFromAuthorizationEndpoint
authorization endpoint response does not include unexpected parameters
|
||||||
|
2022-07-18 20:29:54 | SUCCESS |
CheckStateInAuthorizationResponse
State in response correctly returned
|
||
|
2022-07-18 20:29:54 | SUCCESS |
ValidateIssInAuthorizationResponse
'iss' parameter in authorization response matches server's issuer value.
|
|
2022-07-18 20:29:54 |
SUCCESS
|
ExtractAuthorizationCodeFromAuthorizationResponse
Found authorization code
|
||
|
2022-07-18 20:29:54 | SUCCESS |
EnsureMinimumAuthorizationCodeLength
Authorization code is of sufficient length
|
||||
|
2022-07-18 20:29:54 | SUCCESS |
EnsureMinimumAuthorizationCodeEntropy
Calculated shannon entropy seems sufficient
|
||||||
|
Call token endpoint |
2022-07-18 20:29:54 |
SUCCESS
|
CreateTokenEndpointRequestForAuthorizationCodeGrant
Created token endpoint request
|
||||||
|
2022-07-18 20:29:54 |
|
AddClientIdToTokenEndpointRequest
|
||||||||
|
2022-07-18 20:29:54 |
|
CallTokenEndpoint
HTTP request
|
||||||||||
|
2022-07-18 20:29:54 |
INFO
|
WebRunner
Completed processing of webpage
|
||||||||||||
|
2022-07-18 20:29:55 |
RESPONSE
|
CallTokenEndpoint
HTTP response
|
||||||||
|
2022-07-18 20:29:55 |
SUCCESS
|
CallTokenEndpoint
Parsed token endpoint response
|
||||||||||
|
Verify token endpoint response |
2022-07-18 20:29:55 |
SUCCESS
|
CheckIfTokenEndpointResponseError
No error from token endpoint
|
|
2022-07-18 20:29:55 | SUCCESS |
CheckForAccessTokenValue
Found an access token
|
||
|
2022-07-18 20:29:55 |
SUCCESS
|
ExtractAccessTokenFromTokenResponse
Extracted the access token
|
||||
|
2022-07-18 20:29:55 | SUCCESS |
ExtractExpiresInFromTokenEndpointResponse
Extracted 'expires_in'
|
||
|
2022-07-18 20:29:55 | SUCCESS |
ValidateExpiresIn
expires_in passed all validation checks
|
||
|
2022-07-18 20:29:55 |
SUCCESS
|
CheckForRefreshTokenValue
Found a refresh token
|
||
|
2022-07-18 20:29:55 | SUCCESS |
EnsureMinimumRefreshTokenLength
Refresh token is of sufficient length
|
||||
|
2022-07-18 20:29:55 | SUCCESS |
EnsureMinimumRefreshTokenEntropy
Calculated shannon entropy seems sufficient
|
||||||
|
2022-07-18 20:29:55 | SUCCESS |
EnsureMinimumAccessTokenLength
Access token is of sufficient length
|
||||
|
2022-07-18 20:29:55 | SUCCESS |
EnsureMinimumAccessTokenEntropy
Calculated shannon entropy seems sufficient
|
||||||
|
2022-07-18 20:29:55 | SUCCESS |
ExtractIdTokenFromTokenResponse
Found and parsed the id_token from token_endpoint_response
|
||||||
|
2022-07-18 20:29:55 | SUCCESS |
ValidateIdToken
ID token iss, aud, exp, iat, auth_time, acr & nbf claims passed validation checks
|
|
2022-07-18 20:29:55 |
|
ValidateIdTokenStandardClaims
sub is a string with content
|
|
2022-07-18 20:29:55 | SUCCESS |
ValidateIdTokenStandardClaims
id_token claims are valid
|
|
2022-07-18 20:29:55 | SUCCESS |
ValidateIdTokenNonce
Nonce values match
|
||
|
2022-07-18 20:29:55 | SUCCESS |
ValidateIdTokenACRClaimAgainstRequest
acr value in id_token is (one of) the requested values
|
||||
|
2022-07-18 20:29:55 |
SUCCESS
|
ValidateIdTokenSignature
id_token signature validated
|
||
|
2022-07-18 20:29:55 |
SUCCESS
|
ValidateIdTokenSignatureUsingKid
id_token signature validated
|
||
|
2022-07-18 20:29:55 | SUCCESS |
CheckForSubjectInIdToken
Found 'sub' in id_token
|
||
|
2022-07-18 20:29:55 |
|
EnsureIdTokenUpdatedAtValid
id_token response does not contain 'updated_at'
|
|
2022-07-18 20:29:55 | INFO |
ValidateEncryptedIdTokenHasKid
Skipped evaluation due to missing required element: id_token jwe_header
|
||||||
|
2022-07-18 20:29:55 | SUCCESS |
EnsureIdTokenContainsKid
kid was found in the ID token header
|
||
|
2022-07-18 20:29:55 | SUCCESS |
FAPIValidateIdTokenSigningAlg
id_token was signed with a permitted algorithm
|
||||
|
2022-07-18 20:29:55 | INFO |
FAPIValidateIdTokenEncryptionAlg
Skipped evaluation due to missing required element: id_token jwe_header
|
||||||
|
2022-07-18 20:29:55 | INFO |
ExtractCHash
Couldn't find c_hash in ID token
|
|
2022-07-18 20:29:55 | SUCCESS |
ExtractSHash
Extracted s_hash from ID Token
|
||||
|
2022-07-18 20:29:55 | INFO |
ExtractAtHash
Couldn't find at_hash in ID token
|
|
2022-07-18 20:29:55 | INFO |
ValidateCHash
Skipped evaluation due to missing required object: c_hash
|
||||
|
2022-07-18 20:29:55 | SUCCESS |
ValidateSHash
s_hash validated successfully
|
||||||
|
2022-07-18 20:29:55 | INFO |
ValidateAtHash
Skipped evaluation due to missing required object: at_hash
|
||||
|
Accounts request endpoint TLS test |
2022-07-18 20:29:55 | SUCCESS |
EnsureTLS12WithFAPICiphers
Server agreed to TLS 1.2
|
||||
|
2022-07-18 20:29:55 | SUCCESS |
DisallowTLS10
Server refused TLS 1.0 handshake
|
||||
|
2022-07-18 20:29:55 | SUCCESS |
DisallowTLS11
Server refused TLS 1.1 handshake
|
||||
|
2022-07-18 20:29:55 |
|
DisallowInsecureCipher
Trying to connect with a non-permitted cipher (this is not exhaustive: check the server configuration manually to verify conformance)
|
||||
|
2022-07-18 20:29:55 | SUCCESS |
DisallowInsecureCipher
The TLS handshake was rejected when trying to connect with disallowed ciphers.
|
||||
|
Accounts resource endpoint TLS test |
2022-07-18 20:29:56 | SUCCESS |
EnsureTLS12WithFAPICiphers
Server agreed to TLS 1.2
|
||||
|
2022-07-18 20:29:56 | SUCCESS |
DisallowTLS10
Server refused TLS 1.0 handshake
|
||||
|
2022-07-18 20:29:56 | SUCCESS |
DisallowTLS11
Server refused TLS 1.1 handshake
|
||||
|
2022-07-18 20:29:56 |
|
DisallowInsecureCipher
Trying to connect with a non-permitted cipher (this is not exhaustive: check the server configuration manually to verify conformance)
|
||||
|
2022-07-18 20:29:56 | SUCCESS |
DisallowInsecureCipher
The TLS handshake was rejected when trying to connect with disallowed ciphers.
|
||||
|
Resource server endpoint tests |
2022-07-18 20:29:56 |
|
CreateEmptyResourceEndpointRequestHeaders
Created empty headers
|
||
|
2022-07-18 20:29:56 | SUCCESS |
AddFAPIAuthDateToResourceEndpointRequest
Added x-fapi-auth-date to resource endpoint request headers
|
||
|
2022-07-18 20:29:56 |
|
AddIpV4FapiCustomerIpAddressToResourceEndpointRequest
Added x-fapi-customer-ip-address containing IPv4 address to resource endpoint request headers
|
||
|
2022-07-18 20:29:56 |
|
CreateRandomFAPIInteractionId
Created interaction ID
|
||
|
2022-07-18 20:29:56 | SUCCESS |
AddFAPIInteractionIdToResourceEndpointRequest
Added x-fapi-interaction-id to resource endpoint request headers
|
||
|
2022-07-18 20:29:56 |
|
CallProtectedResource
HTTP request
|
||||||||||
|
2022-07-18 20:29:56 |
RESPONSE
|
CallProtectedResource
HTTP response
|
||||||||
|
2022-07-18 20:29:56 | SUCCESS |
CallProtectedResource
Got a response from the resource endpoint
|
||||||||
|
2022-07-18 20:29:56 |
SUCCESS
|
EnsureHttpStatusCodeIs200or201
resource endpoint http status code was 200
|
|
2022-07-18 20:29:56 | SUCCESS |
CheckForDateHeaderInResourceResponse
Date header present and validated
|
||||
|
2022-07-18 20:29:56 | SUCCESS |
CheckForFAPIInteractionIdInResourceResponse
Found x-fapi-interaction-id
|
||
|
2022-07-18 20:29:56 | SUCCESS |
EnsureMatchingFAPIInteractionId
Interaction ID matched
|
||
|
2022-07-18 20:29:56 | SUCCESS |
EnsureResourceResponseReturnedJsonContentType
Response content type is json
|
||
|
2022-07-18 20:29:56 |
|
DisallowAccessTokenInQuery
HTTP request
|
||||||||||
|
2022-07-18 20:29:57 |
RESPONSE
|
DisallowAccessTokenInQuery
HTTP response
|
||||||||
|
2022-07-18 20:29:57 | SUCCESS |
DisallowAccessTokenInQuery
Resource server refused request
|
||||
|
2022-07-18 20:29:57 |
|
AddIpV6FapiCustomerIpAddressToResourceEndpointRequest
Added x-fapi-customer-ip-address containing IPv6 address to resource endpoint request headers
|
||
|
2022-07-18 20:29:57 |
SUCCESS
|
SetUtf8JsonAcceptHeadersForResourceEndpointRequest
Set Accept header
|
||
|
2022-07-18 20:29:57 |
|
CallProtectedResource
HTTP request
|
||||||||||
|
2022-07-18 20:29:57 |
RESPONSE
|
CallProtectedResource
HTTP response
|
||||||||
|
2022-07-18 20:29:57 | SUCCESS |
CallProtectedResource
Got a response from the resource endpoint
|
||||||||
|
2022-07-18 20:29:57 |
SUCCESS
|
EnsureHttpStatusCodeIs200or201
resource endpoint http status code was 200
|
|
2022-07-18 20:29:57 |
SUCCESS
|
SetPermissiveAcceptHeaderForResourceEndpointRequest
Set Accept header
|
||
|
2022-07-18 20:29:57 |
|
CallProtectedResource
HTTP request
|
||||||||||
|
2022-07-18 20:29:57 |
RESPONSE
|
CallProtectedResource
HTTP response
|
||||||||
|
2022-07-18 20:29:57 | SUCCESS |
CallProtectedResource
Got a response from the resource endpoint
|
||||||||
|
2022-07-18 20:29:57 |
SUCCESS
|
EnsureHttpStatusCodeIs200or201
resource endpoint http status code was 200
|
|
2022-07-18 20:29:57 |
SUCCESS
|
ClearAcceptHeaderForResourceEndpointRequest
Cleared custom Accept header
|
|
Second client: Setup |
2022-07-18 20:29:57 | SUCCESS |
AddRedirectUriQuerySuffix
Created redirect URI query suffix to test that query sections in the registered redirect url are handled correctly. The redirect url, including this suffix, must be registered for the client as per http://openid.net/certification/fapi_op_testing/
|
||
|
2022-07-18 20:29:57 |
|
CreateRedirectUri
Appending suffix to redirect URI
|
||
|
2022-07-18 20:29:57 | SUCCESS |
CreateRedirectUri
Created redirect URI
|
||
|
Second client: Make request to authorization endpoint |
2022-07-18 20:29:57 |
SUCCESS
|
CreateAuthorizationEndpointRequestFromClientInformation
Created authorization endpoint request
|
||||||
|
2022-07-18 20:29:57 |
SUCCESS
|
AddAcrClaimToAuthorizationEndpointRequest
Added acr claim to authorization_endpoint_request
|
||
|
2022-07-18 20:29:57 |
|
CreateRandomStateValue
Created state value
|
||||
|
2022-07-18 20:29:57 |
SUCCESS
|
AddStateToAuthorizationEndpointRequest
Added state parameter to request
|
||||||||||
|
2022-07-18 20:29:57 |
|
CreateRandomNonceValue
Created nonce value
|
||||
|
2022-07-18 20:29:57 |
SUCCESS
|
AddNonceToAuthorizationEndpointRequest
Added nonce parameter to request
|
||||||||||||
|
2022-07-18 20:29:58 |
SUCCESS
|
SetAuthorizationEndpointRequestResponseTypeToCode
Added response_type parameter to request
|
||||||||||||||
|
2022-07-18 20:29:58 |
SUCCESS
|
SetAuthorizationEndpointRequestResponseModeToJWT
Added response_mode parameter to request
|
||||||||||||||||
|
2022-07-18 20:29:58 |
SUCCESS
|
ConvertAuthorizationEndpointRequestToRequestObject
Created request object claims
|
||
|
2022-07-18 20:29:58 |
SUCCESS
|
AddIatToRequestObject
Added iat to request object claims
|
||
|
2022-07-18 20:29:58 | SUCCESS |
AddNbfToRequestObject
Added nbf to request object claims
|
||
|
2022-07-18 20:29:58 | SUCCESS |
AddExpToRequestObject
Added exp to request object claims
|
||
|
2022-07-18 20:29:58 | SUCCESS |
AddAudToRequestObject
Added aud to request object claims
|
||
|
2022-07-18 20:29:58 | SUCCESS |
AddIssToRequestObject
Added iss to request object claims
|
||
|
2022-07-18 20:29:58 | SUCCESS |
AddClientIdToRequestObject
Added client_id to request object claims
|
||
|
2022-07-18 20:29:58 |
SUCCESS
|
SignRequestObject
Signed the request object
|
||||||||
|
2022-07-18 20:29:58 |
SUCCESS
|
BuildRequestObjectByValueRedirectToAuthorizationEndpoint
Sending to authorization endpoint
|
||
|
2022-07-18 20:29:58 |
REDIRECT
|
fapi1-advanced-final
Redirecting to authorization endpoint
|
||
|
2022-07-18 20:29:58 |
|
WebRunner
Scripted browser HTTP request
|
||||||
|
2022-07-18 20:29:59 |
RESPONSE
|
WebRunner
Scripted browser HTTP response
|
||||||||
|
2022-07-18 20:29:59 |
INFO
|
WebRunner
Waiting
|
||||||||||||||||
|
2022-07-18 20:29:59 |
INFO
|
WebRunner
Entering text
|
||||||||||||
|
2022-07-18 20:29:59 |
INFO
|
WebRunner
Entering text
|
||||||||||||
|
2022-07-18 20:29:59 |
INFO
|
WebRunner
Clicking an element
|
||||||||||
|
2022-07-18 20:29:59 |
INFO
|
WebRunner
Completed processing of webpage
|
||||||||||||
|
2022-07-18 20:29:59 |
INFO
|
WebRunner
Clicking an element
|
||||||||||
|
2022-07-18 20:29:59 |
INCOMING
|
fapi1-advanced-final
Incoming HTTP request to /test/a/pingidentity-pingfederate-fapi-adv-op-mtls-value-jarm/callback
|
||||||||||||||||||||||
|
2022-07-18 20:29:59 |
SUCCESS
|
CreateRandomImplicitSubmitUrl
Created random implicit submission URL
|
||
|
2022-07-18 20:29:59 |
OUTGOING
|
fapi1-advanced-final
Response to HTTP request to test instance lNoJ6BmfPDV2tHJ
|
||||
|
2022-07-18 20:30:00 |
INFO
|
WebRunner
Completed processing of webpage
|
||||||||||||
|
2022-07-18 20:30:00 |
INFO
|
WebRunner
Waiting
|
||||||||||||||||
|
2022-07-18 20:30:00 |
INCOMING
|
fapi1-advanced-final
Incoming HTTP request to /test/a/pingidentity-pingfederate-fapi-adv-op-mtls-value-jarm/implicit/gSu2GBttVH2WsvOJeaba
|
||||||||||||||||||||||
|
2022-07-18 20:30:00 |
OUTGOING
|
fapi1-advanced-final
Response to HTTP request to test instance lNoJ6BmfPDV2tHJ
|
||||||||
|
2022-07-18 20:30:00 |
SUCCESS
|
ExtractImplicitHashToCallbackResponse
implicit_hash is empty
|
|
2022-07-18 20:30:00 |
REDIRECT-IN
|
fapi1-advanced-final
Authorization endpoint response captured
|
||||||||||
|
Second client: Verify authorization endpoint response |
2022-07-18 20:30:00 | SUCCESS |
ExtractJARMFromURLQuery
Found and parsed the jarm_response from callback_query_params
|
||||||
|
2022-07-18 20:30:00 | SUCCESS |
RejectNonJarmResponsesInUrlQuery
Authorization endpoint response only includes the JARM JWT.
|
|
2022-07-18 20:30:00 |
SUCCESS
|
ExtractAuthorizationEndpointResponseFromJARMResponse
Extracted the authorization response
|
||||||
|
2022-07-18 20:30:00 | SUCCESS |
ValidateJARMResponse
JARM response standard JWT claims are valid
|
|
2022-07-18 20:30:00 | SUCCESS |
ValidateJARMExpRecommendations
JARM response 'exp' is less than 10 minutes
|
||||
|
2022-07-18 20:30:00 | SUCCESS |
ValidateJARMSignatureUsingKid
jarm_response signature validated
|
||
|
2022-07-18 20:30:00 | SUCCESS |
RejectAuthCodeInUrlQuery
Authorization code is not present in URL query returned from authorization endpoint
|
|
2022-07-18 20:30:00 |
SUCCESS
|
CheckMatchingCallbackParameters
Callback parameters successfully verified
|
||||
|
2022-07-18 20:30:00 | 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)
|
|
2022-07-18 20:30:00 |
SUCCESS
|
CheckIfAuthorizationEndpointError
No error from authorization endpoint
|
|
2022-07-18 20:30:00 |
SUCCESS
|
ValidateSuccessfulJARMResponseFromAuthorizationEndpoint
authorization endpoint response does not include unexpected parameters
|
||||||
|
2022-07-18 20:30:00 | SUCCESS |
CheckStateInAuthorizationResponse
State in response correctly returned
|
||
|
2022-07-18 20:30:00 | SUCCESS |
ValidateIssInAuthorizationResponse
'iss' parameter in authorization response matches server's issuer value.
|
|
2022-07-18 20:30:00 |
SUCCESS
|
ExtractAuthorizationCodeFromAuthorizationResponse
Found authorization code
|
||
|
2022-07-18 20:30:00 | SUCCESS |
EnsureMinimumAuthorizationCodeLength
Authorization code is of sufficient length
|
||||
|
2022-07-18 20:30:00 | SUCCESS |
EnsureMinimumAuthorizationCodeEntropy
Calculated shannon entropy seems sufficient
|
||||||
|
Second client: Call token endpoint |
2022-07-18 20:30:00 |
SUCCESS
|
CreateTokenEndpointRequestForAuthorizationCodeGrant
Created token endpoint request
|
||||||
|
2022-07-18 20:30:00 |
|
AddClientIdToTokenEndpointRequest
|
||||||||
|
2022-07-18 20:30:00 |
|
CallTokenEndpoint
HTTP request
|
||||||||||
|
2022-07-18 20:30:00 |
INFO
|
WebRunner
Completed processing of webpage
|
||||||||||||
|
2022-07-18 20:30:00 |
RESPONSE
|
CallTokenEndpoint
HTTP response
|
||||||||
|
2022-07-18 20:30:00 |
SUCCESS
|
CallTokenEndpoint
Parsed token endpoint response
|
||||||||||
|
Second client: Verify token endpoint response |
2022-07-18 20:30:00 |
SUCCESS
|
CheckIfTokenEndpointResponseError
No error from token endpoint
|
|
2022-07-18 20:30:00 | SUCCESS |
CheckForAccessTokenValue
Found an access token
|
||
|
2022-07-18 20:30:00 |
SUCCESS
|
ExtractAccessTokenFromTokenResponse
Extracted the access token
|
||||
|
2022-07-18 20:30:00 | SUCCESS |
ExtractExpiresInFromTokenEndpointResponse
Extracted 'expires_in'
|
||
|
2022-07-18 20:30:00 | SUCCESS |
ValidateExpiresIn
expires_in passed all validation checks
|
||
|
2022-07-18 20:30:00 |
SUCCESS
|
CheckForRefreshTokenValue
Found a refresh token
|
||
|
2022-07-18 20:30:00 | SUCCESS |
EnsureMinimumRefreshTokenLength
Refresh token is of sufficient length
|
||||
|
2022-07-18 20:30:00 | SUCCESS |
EnsureMinimumRefreshTokenEntropy
Calculated shannon entropy seems sufficient
|
||||||
|
2022-07-18 20:30:00 | SUCCESS |
EnsureMinimumAccessTokenLength
Access token is of sufficient length
|
||||
|
2022-07-18 20:30:00 | SUCCESS |
EnsureMinimumAccessTokenEntropy
Calculated shannon entropy seems sufficient
|
||||||
|
2022-07-18 20:30:00 | SUCCESS |
ExtractIdTokenFromTokenResponse
Found and parsed the id_token from token_endpoint_response
|
||||||
|
2022-07-18 20:30:00 | SUCCESS |
ValidateIdToken
ID token iss, aud, exp, iat, auth_time, acr & nbf claims passed validation checks
|
|
2022-07-18 20:30:00 |
|
ValidateIdTokenStandardClaims
sub is a string with content
|
|
2022-07-18 20:30:00 | SUCCESS |
ValidateIdTokenStandardClaims
id_token claims are valid
|
|
2022-07-18 20:30:00 | SUCCESS |
ValidateIdTokenNonce
Nonce values match
|
||
|
2022-07-18 20:30:00 | SUCCESS |
ValidateIdTokenACRClaimAgainstRequest
acr value in id_token is (one of) the requested values
|
||||
|
2022-07-18 20:30:00 |
SUCCESS
|
ValidateIdTokenSignature
id_token signature validated
|
||
|
2022-07-18 20:30:00 |
SUCCESS
|
ValidateIdTokenSignatureUsingKid
id_token signature validated
|
||
|
2022-07-18 20:30:00 | SUCCESS |
CheckForSubjectInIdToken
Found 'sub' in id_token
|
||
|
2022-07-18 20:30:00 |
|
EnsureIdTokenUpdatedAtValid
id_token response does not contain 'updated_at'
|
|
2022-07-18 20:30:00 | INFO |
ValidateEncryptedIdTokenHasKid
Skipped evaluation due to missing required element: id_token jwe_header
|
||||||
|
2022-07-18 20:30:00 | SUCCESS |
EnsureIdTokenContainsKid
kid was found in the ID token header
|
||
|
2022-07-18 20:30:00 | SUCCESS |
FAPIValidateIdTokenSigningAlg
id_token was signed with a permitted algorithm
|
||||
|
2022-07-18 20:30:00 | INFO |
FAPIValidateIdTokenEncryptionAlg
Skipped evaluation due to missing required element: id_token jwe_header
|
||||||
|
2022-07-18 20:30:00 | INFO |
ExtractCHash
Couldn't find c_hash in ID token
|
|
2022-07-18 20:30:00 | SUCCESS |
ExtractSHash
Extracted s_hash from ID Token
|
||||
|
2022-07-18 20:30:00 | INFO |
ExtractAtHash
Couldn't find at_hash in ID token
|
|
2022-07-18 20:30:00 | INFO |
ValidateCHash
Skipped evaluation due to missing required object: c_hash
|
||||
|
2022-07-18 20:30:00 | SUCCESS |
ValidateSHash
s_hash validated successfully
|
||||||
|
2022-07-18 20:30:00 | INFO |
ValidateAtHash
Skipped evaluation due to missing required object: at_hash
|
||||
|
Second client: Resource server endpoint tests |
2022-07-18 20:30:00 |
|
CreateEmptyResourceEndpointRequestHeaders
Created empty headers
|
||
|
2022-07-18 20:30:00 |
|
CallProtectedResource
HTTP request
|
||||||||||
|
2022-07-18 20:30:01 |
RESPONSE
|
CallProtectedResource
HTTP response
|
||||||||
|
2022-07-18 20:30:01 | SUCCESS |
CallProtectedResource
Got a response from the resource endpoint
|
||||||||
|
2022-07-18 20:30:01 |
SUCCESS
|
EnsureHttpStatusCodeIs200or201
resource endpoint http status code was 200
|
|
2022-07-18 20:30:01 | SUCCESS |
CheckForDateHeaderInResourceResponse
Date header present and validated
|
||||
|
2022-07-18 20:30:01 | SUCCESS |
CheckForFAPIInteractionIdInResourceResponse
Found x-fapi-interaction-id
|
||
|
2022-07-18 20:30:01 | SUCCESS |
EnsureResourceResponseReturnedJsonContentType
Response content type is json
|
||
|
Try Client1's MTLS client certificate with Client2's access token |
2022-07-18 20:30:01 |
|
CallProtectedResource
HTTP request
|
||||||||||
|
2022-07-18 20:30:01 |
RESPONSE
|
CallProtectedResource
HTTP response
|
||||||||
|
2022-07-18 20:30:01 | SUCCESS |
CallProtectedResource
Got a response from the resource endpoint
|
||||||||
|
2022-07-18 20:30:01 | SUCCESS |
EnsureHttpStatusCodeIs4xx
resource endpoint http status code was 403
|
|
2022-07-18 20:30:01 |
FINISHED
|
fapi1-advanced-final
Test has run to completion
|
||
|
2022-07-18 20:30:02 |
|
TEST-RUNNER
Alias has now been claimed by another test
|
||||
|