Test Info

Issuerhttps://idp.armls.com
Profile[]
Test IDOP-OAuth-2nd
Test descriptionTrying to use authorization code twice should result in an error
Timestamp2019-02-21T22:13:59Z

Conditions


check-http-error-response: status=OK [Checks that an error code is either 400 or 401 which are the only ones accepted by OAuth2/OIDC.]
verify-response: status=OK [Checks that the last response was one of a possible set of OpenID Connect Responses]
Done: status=OK

Trace Output

0phase<--<-- 0 --- Webfinger -->-->
0not expected to doWebFinger
0phase<--<-- 1 --- Discovery -->-->
0not expected to doDynamic discovery
0phase<--<-- 2 --- Registration -->-->
0not expected to doDynamic registration
0phase<--<-- 3 --- Note -->-->
2phase<--<-- 4 --- AsyncAuthn -->-->
2AuthorizationRequest
{
    "client_id": "op.certification.openid.net",
    "nonce": "MoubyApuKBNjld6T",
    "redirect_uri": "https://op.certification.openid.net:61504/authz_cb",
    "response_type": "code",
    "scope": "openid",
    "state": "z7rVdxo2Ylm9rcVF"
}
2redirect urlhttps://idp.armls.com/connect/authorize?state=z7rVdxo2Ylm9rcVF&nonce=MoubyApuKBNjld6T&response_type=code&scope=openid&redirect_uri=https%3A%2F%2Fop.certification.openid.net%3A61504%2Fauthz_cb&client_id=op.certification.openid.net
2redirecthttps://idp.armls.com/connect/authorize?state=z7rVdxo2Ylm9rcVF&nonce=MoubyApuKBNjld6T&response_type=code&scope=openid&redirect_uri=https%3A%2F%2Fop.certification.openid.net%3A61504%2Fauthz_cb&client_id=op.certification.openid.net
2responseResponse URL with query part
2response{'code': '5fc65550c9c963f668a3dae40d67e2fb562a2457705fb70274681ce24fba10a0', 'scope': 'openid', 'state': 'z7rVdxo2Ylm9rcVF', 'session_state': 'PPiY8TdE9K60-Goj38dpKBfvXsXTNJHVUkJO7mzX8RM.508b66f4b2720549cc43887d8bfb7c8f'}
2response{'code': '5fc65550c9c963f668a3dae40d67e2fb562a2457705fb70274681ce24fba10a0', 'scope': 'openid', 'state': 'z7rVdxo2Ylm9rcVF', 'session_state': 'PPiY8TdE9K60-Goj38dpKBfvXsXTNJHVUkJO7mzX8RM.508b66f4b2720549cc43887d8bfb7c8f'}
2AuthorizationResponse
{
    "code": "5fc65550c9c963f668a3dae40d67e2fb562a2457705fb70274681ce24fba10a0",
    "scope": "openid",
    "session_state": "PPiY8TdE9K60-Goj38dpKBfvXsXTNJHVUkJO7mzX8RM.508b66f4b2720549cc43887d8bfb7c8f",
    "state": "z7rVdxo2Ylm9rcVF"
}
2phase<--<-- 5 --- AccessToken -->-->
2requestop_args: {'state': 'z7rVdxo2Ylm9rcVF'}, req_args: {'redirect_uri': 'https://op.certification.openid.net:61504/authz_cb'}
2do_access_token_request
kwargs:{'request_args': {'redirect_uri': 'https://op.certification.openid.net:61504/authz_cb', 'code': '5fc65550c9c963f668a3dae40d67e2fb562a2457705fb70274681ce24fba10a0', 'state': 'z7rVdxo2Ylm9rcVF', 'grant_type': 'authorization_code', 'client_id': 'op.certification.openid.net'}, 'state': 'z7rVdxo2Ylm9rcVF', 'authn_method': 'client_secret_basic'}
2AccessTokenRequest
{
    "code": "5fc65550c9c963f668a3dae40d67e2fb562a2457705fb70274681ce24fba10a0",
    "grant_type": "authorization_code",
    "redirect_uri": "https://op.certification.openid.net:61504/authz_cb",
    "state": "z7rVdxo2Ylm9rcVF"
}
2request_urlhttps://idp.armls.com/connect/token
2request_http_args{'headers': {'Authorization': 'Basic b3AuY2VydGlmaWNhdGlvbi5vcGVuaWQubmV0Om9wLmNlcnRpZmljYXRpb24ub3BlbmlkLm5ldA==', 'Content-Type': 'application/x-www-form-urlencoded'}}
2requestgrant_type=authorization_code&redirect_uri=https%3A%2F%2Fop.certification.openid.net%3A61504%2Fauthz_cb&code=5fc65550c9c963f668a3dae40d67e2fb562a2457705fb70274681ce24fba10a0&state=z7rVdxo2Ylm9rcVF
2http response
url:https://idp.armls.com/connect/token status_code:200
2response{'id_token': 'eyJhbGciOiJSUzI1NiIsImtpZCI6IkUzOEMwRDRBMzgwNkI1NTMxQTRFN0Y3MTNDQ0ZBMjI2NEE3N0FCNDEiLCJ0eXAiOiJKV1QiLCJ4NXQiOiI0NHdOU2pnR3RWTWFUbjl4UE0taUprcDNxMEUifQ.eyJuYmYiOjE1NTA3ODcyMzgsImV4cCI6MTU1MDc4NzUzOCwiaXNzIjoiaHR0cHM6Ly9pZHAuYXJtbHMuY29tIiwiYXVkIjoib3AuY2VydGlmaWNhdGlvbi5vcGVuaWQubmV0Iiwibm9uY2UiOiJNb3VieUFwdUtCTmpsZDZUIiwiaWF0IjoxNTUwNzg3MjM4LCJhdF9oYXNoIjoicDh3N1lONzgxbGhyTmZuYk1qQUZUUSIsInNpZCI6IjkyYTk2ODgzOGJlZWE4MDZiNWE0MGE5NTAyMWNmOTYxIiwic3ViIjoiMDIwNTE2NzUtN0REMy00NDY5LUE0MzMtRENEM0E3RUI3Qjg4IiwiYXV0aF90aW1lIjoxNTUwNzg3MjE1LCJpZHAiOiJsb2NhbCIsImFtciI6WyJleHRlcm5hbCJdfQ.WnLdD72Ru-xVLIHoh9hpD9e_2oZWID_ooPamCSfyBnlncZ-Obz0xRTyhmP8cRKihc2AwmDUIaMcH9-S0n3NwOrPLgAeAP2shGihmUdVrFlWcwXhQw_2GzPY9KlwPr_0NFeQ_i9EV5AhK4AGKhP-dFqMVz6GHBoETN03EfD7x_xdK7_K3Vvc2E7cM27eo3p-srp4A7T0qj05YJU5eUtH1AoMTpFWvbWntWC6euturYpl24X6vQ0Nrh9ENdcgARGCmlbRU2o5S1cEjn1hYO0KuxzROeNaWZFcFMCNbRGhVaL73PJYBwrzwkgzsz8QfdfABZlRcIYrzmkJDgYZuTWhFXA', 'access_token': 'eyJhbGciOiJSUzI1NiIsImtpZCI6IkUzOEMwRDRBMzgwNkI1NTMxQTRFN0Y3MTNDQ0ZBMjI2NEE3N0FCNDEiLCJ0eXAiOiJKV1QiLCJ4NXQiOiI0NHdOU2pnR3RWTWFUbjl4UE0taUprcDNxMEUifQ.eyJuYmYiOjE1NTA3ODcyMzgsImV4cCI6MTU1MDc5MDgzOCwiaXNzIjoiaHR0cHM6Ly9pZHAuYXJtbHMuY29tIiwiYXVkIjoiaHR0cHM6Ly9pZHAuYXJtbHMuY29tL3Jlc291cmNlcyIsImNsaWVudF9pZCI6Im9wLmNlcnRpZmljYXRpb24ub3BlbmlkLm5ldCIsInN1YiI6IjAyMDUxNjc1LTdERDMtNDQ2OS1BNDMzLURDRDNBN0VCN0I4OCIsImF1dGhfdGltZSI6MTU1MDc4NzIxNSwiaWRwIjoibG9jYWwiLCJzY29wZSI6WyJvcGVuaWQiXSwiYW1yIjpbImV4dGVybmFsIl19.JksPpwx1Cil3fZKS9DKlTZk28inmXZkwhVSgYU28NTeAHCvdfn1pJhqiWIrsNaB46R9LmOP6IfV_9-fm17FwShIBe1LtSkP_994DmzFEm5QI9AJu9IIvIO4VOAQSsU6nIMC-Mh-GiTUs_ugggp2q3hzUTwvY1wFoRZMn4d6wqSHMo1cvcdeY0STpVukeIIUXcdEhGEWJ8-JPMG36czv6g351qQ2f3f_2ReKaKTcywt54DPABSpQ9QA7ul72aWf456ZeKx2gL8z7Kii52rOuscNbA76l_K3_NBIIrJy9eT9xKRezYLhFzkAvwnIP_uEE_CGDA6B8e6tU8l1pVZKjtlA', 'expires_in': 3600, 'token_type': 'Bearer'}
3AccessTokenResponse
{
    "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6IkUzOEMwRDRBMzgwNkI1NTMxQTRFN0Y3MTNDQ0ZBMjI2NEE3N0FCNDEiLCJ0eXAiOiJKV1QiLCJ4NXQiOiI0NHdOU2pnR3RWTWFUbjl4UE0taUprcDNxMEUifQ.eyJuYmYiOjE1NTA3ODcyMzgsImV4cCI6MTU1MDc5MDgzOCwiaXNzIjoiaHR0cHM6Ly9pZHAuYXJtbHMuY29tIiwiYXVkIjoiaHR0cHM6Ly9pZHAuYXJtbHMuY29tL3Jlc291cmNlcyIsImNsaWVudF9pZCI6Im9wLmNlcnRpZmljYXRpb24ub3BlbmlkLm5ldCIsInN1YiI6IjAyMDUxNjc1LTdERDMtNDQ2OS1BNDMzLURDRDNBN0VCN0I4OCIsImF1dGhfdGltZSI6MTU1MDc4NzIxNSwiaWRwIjoibG9jYWwiLCJzY29wZSI6WyJvcGVuaWQiXSwiYW1yIjpbImV4dGVybmFsIl19.JksPpwx1Cil3fZKS9DKlTZk28inmXZkwhVSgYU28NTeAHCvdfn1pJhqiWIrsNaB46R9LmOP6IfV_9-fm17FwShIBe1LtSkP_994DmzFEm5QI9AJu9IIvIO4VOAQSsU6nIMC-Mh-GiTUs_ugggp2q3hzUTwvY1wFoRZMn4d6wqSHMo1cvcdeY0STpVukeIIUXcdEhGEWJ8-JPMG36czv6g351qQ2f3f_2ReKaKTcywt54DPABSpQ9QA7ul72aWf456ZeKx2gL8z7Kii52rOuscNbA76l_K3_NBIIrJy9eT9xKRezYLhFzkAvwnIP_uEE_CGDA6B8e6tU8l1pVZKjtlA",
    "expires_in": 3600,
    "id_token": {
        "amr": [
            "external"
        ],
        "at_hash": "p8w7YN781lhrNfnbMjAFTQ",
        "aud": [
            "op.certification.openid.net"
        ],
        "auth_time": 1550787215,
        "exp": 1550787538,
        "iat": 1550787238,
        "idp": "local",
        "iss": "https://idp.armls.com",
        "nbf": 1550787238,
        "nonce": "MoubyApuKBNjld6T",
        "sid": "92a968838beea806b5a40a95021cf961",
        "sub": "02051675-7DD3-4469-A433-DCD3A7EB7B88"
    },
    "token_type": "Bearer"
}
3jws header{'alg': 'RS256', 'kid': 'E38C0D4A3806B5531A4E7F713CCFA2264A77AB41', 'typ': 'JWT', 'x5t': '44wNSjgGtVMaTn9xPM-iJkp3q0E'}
3phase<--<-- 6 --- AccessToken -->-->
3requestop_args: {'state': 'z7rVdxo2Ylm9rcVF'}, req_args: {'redirect_uri': 'https://op.certification.openid.net:61504/authz_cb'}
3do_access_token_request
kwargs:{'request_args': {'redirect_uri': 'https://op.certification.openid.net:61504/authz_cb', 'code': '5fc65550c9c963f668a3dae40d67e2fb562a2457705fb70274681ce24fba10a0', 'state': 'z7rVdxo2Ylm9rcVF', 'grant_type': 'authorization_code', 'client_id': 'op.certification.openid.net'}, 'state': 'z7rVdxo2Ylm9rcVF', 'authn_method': 'client_secret_basic'}
3AccessTokenRequest
{
    "code": "5fc65550c9c963f668a3dae40d67e2fb562a2457705fb70274681ce24fba10a0",
    "grant_type": "authorization_code",
    "redirect_uri": "https://op.certification.openid.net:61504/authz_cb",
    "state": "z7rVdxo2Ylm9rcVF"
}
3request_urlhttps://idp.armls.com/connect/token
3request_http_args{'headers': {'Authorization': 'Basic b3AuY2VydGlmaWNhdGlvbi5vcGVuaWQubmV0Om9wLmNlcnRpZmljYXRpb24ub3BlbmlkLm5ldA==', 'Content-Type': 'application/x-www-form-urlencoded'}}
3requestgrant_type=authorization_code&redirect_uri=https%3A%2F%2Fop.certification.openid.net%3A61504%2Fauthz_cb&code=5fc65550c9c963f668a3dae40d67e2fb562a2457705fb70274681ce24fba10a0&state=z7rVdxo2Ylm9rcVF
3http response
url:https://idp.armls.com/connect/token status_code:400 message:{"error":"invalid_grant"}
3response{'error': 'invalid_grant'}
3eventGot expected error
3TokenErrorResponse
{
    "error": "invalid_grant"
}
3phase<--<-- 7 --- Done -->-->
3end
3assertionCheckHTTPErrorResponse
3conditioncheck-http-error-response: status=OK [Checks that an error code is either 400 or 401 which are the only ones accepted by OAuth2/OIDC.]
3assertionVerifyResponse
3conditionverify-response: status=OK [Checks that the last response was one of a possible set of OpenID Connect Responses]
3conditionDone: status=OK

Result

PASSED