6.3.2. Проверка запроса аутентификации

Сервер авторизации должен проверить полученный запрос аутентификации следующим образом (подраздел 7.2 [8]):

- аутентифицировать клиента с использованием метода, зарегистрированного для его <client_id> (подраздел 7.1 [6]). Рекомендуется, чтобы клиенты не отправляли общие секреты в запросе аутентификации, а использовали криптографию с открытым ключом;

- если запрос аутентификации подписан, проверить цифровую подпись параметра <request> как JWT, а также проверить структуру JWT на корректность (раздел 8 [6]);

- проверить наличие всех обязательных параметров в запросе аутентификации;

- проверить значения параметров. Если запрос содержит более одной или не содержит информации о пользователе (<login_hint_token>, <id_token_hint> или <login_hint>), сервер авторизации должен вернуть сообщение об ошибке "invalid_request";

- проверить предоставленную информацию о пользователе на корректность состава параметров и актуальность связанного с ним конечного пользователя, а в случае применения подписанной информации о пользователе (<id_token_hint> или <login_hint_token>) проверить его цифровую подпись. Механизм проверки информации о пользователе и способы извещения клиента о требованиях к ним определяются на этапе разработки сервера авторизации исходя из его прикладных целей и задач.

Если информация о пользователе недействительна или если сервер авторизации не может определить конечного пользователя, клиенту возвращается сообщение об ошибке.

Сервер авторизации должен игнорировать нераспознанные параметры запроса. Если проверка запроса аутентификации не пройдена, сервер авторизации должен вернуть сообщение об ошибке (подраздел 6.9).