7.6.1. Инициация сессий аутентификации без участия конечного пользователя

В потоке аутентификации по отдельному каналу сервер авторизации должен иметь информацию о согласии конечного пользователя с процессом аутентификации. Для этого клиент должен передать идентификатор пользователя серверу авторизации. Если этот идентификатор в запросе аутентификации в качестве <login_hint> является статичным (например, номер телефона), то злоумышленник, выступающий в роли клиента, зная статичный идентификатор пользователя <login_hint>, может указывать его в запросах серверу авторизации и посылать такие запросы на AD пользователей. В качестве меры защиты необходимо дополнять запрос на аутентификацию пользователя некоторым идентификатором, служащим подтверждением согласия пользователя на аутентификацию. Такой идентификатор может быть получен одним из следующих способов:

1. <login_hint> с заявленным свойством <nonce>. Заявленное свойство <nonce> генерируется на устройстве AD, после чего попадает на сервер авторизации, с которым взаимодействует AD (например, фронт сервера авторизации), и затем этот <nonce> передается клиенту для включения в <login_hint>.

2. Одноразовый идентификатор конечного пользователя, перенесенный с AD на CD. Сервер авторизации может генерировать одноразовый идентификатор, который передается AD на CD в начале потока. При этом конечный пользователь аутентифицируется в AD и запрашивает идентификатор для потока в виде QR-кода, сканирует его на CD, после чего он передается с CD на клиента, где декодируется и используется для значения <login_hint_token> и проверяется сервером авторизации при инициировании потока аутентификации по отдельному каналу.

3. Одноразовый идентификатор конечного пользователя, перенесенный с CD на AD. Клиент может генерировать одноразовый идентификатор, который передается СD на АD в начале потока. При этом конечный пользователь аутентифицируется в AD и сканирует на AD сгенерированный CD идентификатор для потока в виде QR-кода, после чего он передается с AD на сервер авторизации. Декодированный идентификатор передается клиентом на сервер авторизации в качестве значения <login_hint_token> и проверяется сервером авторизации.

К одноразовым идентификаторам конечного пользователя должны применятся требования, аналогичные заявленному свойству <nonce>.