5.4.3. Гибридный сценарий аутентификации

5.4.3.1. Гибридный сценарий протокола аутентификации (режим 3, пункт 6.1.2 [5]) состоит из последовательности действий, аналогичных сценарию с генерацией кода авторизации (пункт 5.4.2). Последовательность действий различается только на шаге 3:

"3. Сервер авторизации генерирует код авторизации и ID токен, перенаправляет агент пользователя на клиента с кодом перенаправления 303, а также передает значения сгенерированного кода авторизации и ID токена на конечную точку клиента по адресу URI-переадресации <redirect_uri>, указанному в запросе аутентификации (подпункт 5.4.2.9)".

5.4.3.2. При использовании гибридного сценария действия сервера авторизации и клиента, связанные с формированием запроса аутентификации, его передачей, проверкой, а также аутентификацией пользователя и получением его согласия, в целом те же, что и в сценарии с генерацией кода авторизации (подпункты 5.4.2.2 - 5.4.2.6). При этом параметр <response_type> запроса аутентификации должен иметь значение: "code id_token".

5.4.3.3. В случае ошибки проверки запроса аутентификации либо конечный пользователь отклоняет запрос, либо аутентификация конечного пользователя завершается неудачно, сервер авторизации должен возвратить клиенту ответ об ошибке как в пункте 6.4.2 [5].

В случае успешного ответа на запрос, помимо параметров ответа на запрос аутентификации (подпункт 5.4.2.9), клиенту возвращается также значение параметра <id_token> - (обязательный) ID токен.

Формат ID токена в данном сценарии аналогичный подпункту 5.4.2.14. В составе ID токена на этом этапе отсутствует параметр <at_hash>.

5.4.3.4. Клиент должен убедиться в правильности ответа аутентификации, следуя правилам пункта 6.4.3 [5], при этом обязательно проверив целостность полученного кода авторизации с помощью параметра <c_hash>.

5.4.3.5. При использовании гибридного сценария запрос токена клиентом, проверка запроса токена, генерация токена доступа и ID токена на конечной точке токена, их проверка клиентом, а также реакция на ошибки выполняются в соответствии с аналогичными действиями в сценарии с генерацией кода авторизации в соответствии с подпунктами 5.4.2.10 - 5.4.2.13.

Поскольку при этом ID токен возвращается как из конечной точки авторизации, так и из конечной точки токена, значения <iss> и <sub> должны быть идентичны в обоих ID токенах. Все значения параметров события аутентификации, присутствующие в любом из них, должны присутствовать в обоих ID токенах. Если какой-либо ID токен содержит параметр конечного пользователя, присутствующий в обоих ID токенах, он должен иметь одинаковые значения в обоих ID токенах. Сервер авторизации может вернуть меньшее количество параметров о конечном пользователе из конечной точки авторизации - например, по соображениям конфиденциальности.

Примечание. Дополнительные сведения о гибридном сценарии аутентификации представлены в подразделе 3.3 [17].