5.4.1. Протоколы OpenID Connect

5.4.1.1. OIDC - семейство протоколов, являющихся расширением протоколов OAuth 2.0, позволяющих расширить их функционал путем более точного описания процесса аутентификации владельца ресурса и возможности клиенту получить информацию о нем.

Протоколы OpenID Connect также позволяют клиенту проверять информацию о конечном пользователе на основе его (конечного пользователя) аутентификации у сервера авторизации.

5.4.1.2. Сценарий протоколов аутентификации OpenID Connect, которые используют код авторизации, выглядит следующим образом:

1. Клиент генерирует запрос аутентификации и, используя агент пользователя, отправляет запрос аутентификации на конечную точку авторизации сервера авторизации.

2. Сервер авторизации аутентифицирует конечного пользователя и получает разрешение конечного пользователя на доступ клиента к запрошенным защищенным ресурсам.

3. Сервер авторизации генерирует код авторизации, перенаправляет агент пользователя на клиента с кодом перенаправления 303, а также передает значение сгенерированного кода авторизации клиенту.

4. Клиент запрашивает на конечной точке токена сервера авторизации токен доступа, используя код авторизации.

5. Сервер авторизации формирует ответ, содержащий ID токен, токен доступа и токен обновления (опционально); клиент проверяет ID токен, получает информацию о конечном пользователе.

00000002.jpg

Далее клиент может отправить серверу авторизации запрос информации о пользователе, указав токен доступа, и сервер авторизации возвратит клиенту доступную информацию о конечном пользователе, авторизовавшем выдачу этого токена доступа.

5.4.1.3. Для связи сервер авторизации и клиент используют конечные точки - адрес (как правило, URL) сетевого ресурса, через который осуществляется доступ к определенному сервису. В процессе аутентификации используются как минимум две конечные точки сервера авторизации - конечная точка авторизации (шаги (1) и (3) на рис. 2) и конечная точка токена (шаги (4) и (5) на рис. 2), а также одна конечная точка клиента. Для получения доступной информации о конечном пользователе может использоваться также конечная точка UserInfo сервера авторизации.

5.4.1.4. Сервер авторизации должен поддерживать использование метода HTTP GET на конечной точке авторизации и может также поддерживать использование метода POST. При осуществлении запросов токена доступа клиент должен использовать метод HTTP POST. Метод HTTP POST используется для отправки на сервер авторизации данных в теле запроса.

Передача сообщений между клиентом и сервером авторизации должна производиться с использованием протокола TLS.

5.4.1.5. Настоящий стандарт регламентирует использование сервером авторизации и клиентом OpenID Connect двух сценариев аутентификации: с генерацией кода авторизации (Authorization Code Flow [17]) и гибридный сценарий (Hybrid Flow [17]).

Примечание. В методических рекомендациях МР.26.2.002-2024 ТК 26 [5] принято другое именование сценариев протокола аутентификации OIDC:

- режим 1: базовый сценарий протокола OpenID Connect с генерацией кода авторизации (Authorization Code Flow [17]);

- режим 2: сценарий протокола OpenID Connect с генерацией кода авторизации (Authorization Code Flow [17]) и передачей ответа на запрос аутентификации с цифровой подписью сервера авторизации в формате JWT (режим JARM, пункт 5.4.5);

- режим 3: гибридный сценарий протокола OpenID Connect (Hybrid Flow [17]) с передачей ответа на запрос аутентификации с цифровой подписью сервера авторизации в формате ID токена.