6.3.1.1. Подписанный запрос аутентификации

Подписанный запрос аутентификации создается посредством кодирования всех параметров запроса аутентификации в виде параметров подписанного JWT (раздел 8 [6]) с представлением каждого наименования параметра запроса в качестве имени параметра (claim), а его значения в виде строки JSON. Подписанный запрос аутентификации передается в качестве параметра <request> запроса HTTP POST (пункт 7.1.1 [8]).

Примечание. Как исключение, параметр <requested_expiry> может быть представлен также числом JSON.

При этом JWT должен:

- содержать все параметры запроса аутентификации;

- быть подписан цифровой подписью (подраздел 8.1 [6]);

- содержать следующие зарегистрированные параметры (claims):

а) <aud>: должен содержать значение идентификатора эмитента сервера авторизации, который идентифицирует сервер авторизации как предполагаемую аудиторию,

б) <iss>: источник, должен содержать идентификатор клиента,

в) <exp>: время окончания срока действия подписанного запроса аутентификации,

г) <iat>: время создания подписанного запроса аутентификации,

д) <nbf>: время, до которого подписанный запрос аутентификации не должен приниматься к обработке,

е) <jti>: уникальный идентификатор подписанного запроса аутентификации.

Зашифрованные JWT не поддерживаются в подписанных запросах аутентификации.

Ниже приведен пример подписанного запроса аутентификации:

POST /bc-authorize HTTP/1.1

Host: server.example.ru

Content-Type: application/x-www-form-urlencoded

request=eyJ0eXAiOiJKV1QiLCJhbGciOiJHT1NUMzQxMCJ9. eyJpc3MiOiJzNkJoZFJrcXQzIiwiYXVkIjoiaHR0cHM6Ly9zZXJ2ZXIuZXhhbXBsZS5ydSIs ImV4cCI6MTUzNzgyMDA4NiwiaWF0IjoxNTM3ODE5NDg2LC JuYmYiOjE1Mzc4MTg4ODYsImp0 aSI6IjRMVENxQUNDMkVTQzVCV0NuTjNqNThFbkEiLCJzY29wZSI6Im9wZW5pZCBlbWFpbCBl eGFtcGxlLXNjb3BlIiwiY2xpZW50X25vdGlmaWNhdGlvbl90b2tlbiI6IjhkNjdkYzc4LTdmYWEtNGQ0MS1hYWJkLTY3NzA3YjM3NDI1NSIsImJpbmRpbmdfbWVzc2FnZSI6Ilc0U0NUIiwi bG9naW5faGludF90b2tlbiI6ImV5SjBlWEFpT2lKS1YxUWlMQ0poYkdjaU9pSkhUMU5VTXpR eE1DSjkuZXlKemRXSmZhV1FpT25zaWMzVmlhbVZqZEY5MGVYQmxJam9pY0dodmJtVWlMQ0p3 Yuc5dVpTSTZJaXMzTVRJek1EQXdNREF3TVNKOWZRLkE5a0puWDNJVUFGSHNpYzBuVWZYS1ZO bEdEV0x1bzJMODB5MkdMTXNtbjgyeEo4eXU2d0E1azNwSWVwT1V4ckJkNzRhRF9DVkZIZ0oz cVZpYmpSQm1hd1RoaE9RTU5yZ29xVEdmUk5VV1I4QTlvZ0xvZ1hIQ1NaRW83b0NJMUQ0enhI aHNEZVN1ME1ieTYxc0xtcl91Y2hzY3Nfa1NzZm5LcG1NcHlhSW41M3dXZEl1M09JNUJWTUFM bTdFTVpHdXdlUmVNNU5US2ZDVU5qWE5tcDV3In0.LH3heoqfD18vh9ljE28NWKmKQWkztaXY 2GBMzDePM9yMz5L2vdvuTQ_5p9c6szleZBwYwEcxUv4P9uqIvF6zX8Mt_qXY1sGomG1x33Ew btKdqYqFjtAwE1FVHLOEA

&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3A

&client-assertion-type%3Ajwt-bearer

&client_assertion=eyJ0eXAiOiJKV1QiLCJhbGciOiJHT1NUMzQxMCJ9.eyJpc3MiOiJzNkJoZFJrcXQzIiwic3ViIjoiczZCaGRSa3F0MyIsImF1ZCI6Imh0dHBzOi8vc2VydmVyLmV4YW1wbGUucnUiLCJqdGkiOiJiZGMtWHNfc2YtM1lNbzRGU3pJSjJRIiwiaWF0IjoxNTkxMDc2NzE2LCJleHAiOjE1OTIwNzY3MTZ9.FuBj8SjN3bufQae1HgaO6BoSp4ocrnl4dnTZLJE0KzpnafAA88Ra7eoUT2QP1LhtetVAlDcT3nRJmyyRNLc7oXTYtb5mqCbNYw4ThTm9hIgyV339hDO837vxX_GNzP6zY5nKA9nyqyRG3BbPldBkzanyQD1F0JtAVugnBZw

Декодированный JWT из параметра <request>:

{

"iss": "s6BhdRkqt3",

"aud": "https://server.example.ru",

"exp": 1537820086,

"iat": 1537819486,

"nbf": 1537818886,

"jti": "4LTCqACC2ESC5BWCnN3j58EnA",

"scope": "openid email example-scope",

"client_notification_token": "8d67dc78-7faa-4d41-aabd-67707b374255",

"binding_message": "W4SCT",

"login_hint_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJHT1NUMzQxMCJ9.eyJzdWJfaWQiOnsic3ViamVjdF90eXBlIjoicGhvbmUiLCJwaG9uZSI6Iis3MTIzMDAwMDAwMSJ9fQ.A9kJnX3IUAFHsic0nUfXKVNlGDWLuo2L80y2GLMsmn82xJ8yu6wA5k3pIepOUxrBd74aD_CVFHgJ3qVibjRBmawThhOQMNrgoqTGfRNUWR8A9ogLogXHCSZEo7oCI1D4zxHhsDeSu0Mby61sLmr_uchscsEkSsfnKpmMpyaIn53wWdIu3OI5BVMALm7EMZGuweReM5NTKfCUNjXNmp5w"

}