1с проверка учетных данных уот не пройдена маркер безопасности не найден
Данный раздел описывает сценарий организации взаимодействия с ЦИ DSS с использованием маркеров обновления маркеров доступа.
В целях повышения безопасности протокол OAuth 2.0 выпускает маркеры доступа, имеющие ограниченное время жизни.
От времени жизни маркера напрямую зависят безопасность информации, хранящейся на сервере, и удобство пользования оным. Уменьшение времени жизни маркера приводит к сокращению размера окна, в течении которого злоумышленник, перехвативший маркер, имеет доступ информации. Одновременно с этим увеличивается количество запросов на авторизацию, которые должен подтверждать пользователь.
Компромиссным решением в такой ситуации является использование т.н. маркера обновления (refresh_token). Маркером обновления называется долговременный маркер безопасности, выпускаемый Центром Идентификации. Он позволяет осуществлять прозрачный для пользователя перевыпуск маркера доступа.
Сценарий взаимодействия с ЦИ DSS, включающий в себя механизм маркеров обновления, может быть изображен следующей схемой:
- Клиентское приложение осуществляет запрос маркера доступа и для этого передает разрешение на авторизацию Центру Идентификации (подробнее).
- Центр Идентификации передает клиентскому приложению маркер доступа и маркер обновления для последующего перевыпуска маркеров доступа (подробнее).
- Пользователь обращается к Сервису Подписи с полученным маркером доступа.
- Сервис Подписи возвращает защищенный ресурс клиентскому приложению.
- Пользователь продолжает совершать запросы к Сервису до тех пор, пока маркер не перестанет быть валидным.
- Сервис Подписи возвращает ошибку, сигнализирующую о том, что маркер доступа перестал быть валидным.
- Клиентское приложение инициирурует процедуру перевыпуска маркера доступа, используя имеющийся у него маркер обновления (подробнее).
- Центр Идентификации после проверки маркера обновления выпускает приложению новый маркер доступа и, опционально, новый маркер обновления.
Запроса маркеров доступа и обновления
Для запроса маркера доступа с маркером обновления приложению необходимо сформировать запрос на получение кода авторизации, имеющий следующий вид:
Пример запроса
Примечание
При регистрации клиента параметр AllowedFlow должен содержать значение AuthorizationCode .
Примечание
Для включения возможности получения маркера обновления используется параметр -AllowedFlow RefreshToken . (В версиях КриптоПро DSS 2882 и более ранних данный параметр назывался –AllowOfflineAccess ).
Параметр используется только в Исполнениях «DSS + myDSS», «DSS SDK» и «DSS Client SDK», «DSS + AirKey Lite».
Примечание
Значение параметра должно соответствовать значению адреса возврата, заданного при регистрации клиента на ЦИ.
- resource - идентификатор ресурса, для доступа к которому выпускается токен. В случае Сервиса Подписи идентификатор фиксирован и имеет вид urn:cryptopro:dss:signserver:<signserverAppName>.
Если в рамках сценария необходима аутентификация клиентского приложения и известен его секрет, запрос необходимо модифицировать.
После успешной аутентификации ЦИ сформирует следующий ответ, который отправит на redirect_uri :
Типовые ошибки
Примечание
Значение параметра должно соответствовать значению адреса возврата, заданного при регистрации клиента на ЦИ.
Если в рамках сценария необходима аутентификация клиентского приложени и известен его секрет, запрос необходимо модифицировать.
Получение маркера доступа и маркера обновления
В случае успешной обработки запроса Центром Идентификации ответ будет содержать:
- access_token - Маркер доступа, выпущенный Центром Идентификации DSS
- token_type - Тип токена
- expires_in - Время жизни токена в секундах
- refresh_token - Маркер обновления, выпущенный Центром Идентификации DSS_
Внимание!
В силу того, что маркер обновления является долговременным и позволяет легко получить маркер доступа на его основе, факт компрометации маркера обновления клиентским приложением приводит к компрометации всей пользовательской информации.
Необходимо применять усиленные меры безопасности при работе с данным маркером и в случае установления факта компрометации данный маркер должен быть инвалидирован.
Значение параметра access_token необходимо будет использовать при обращениях к Сервису Подписи.
Запрос перевыпуска маркера доступа
Если в рамках сценария необходима аутентификация клиентского приложени и известен его секрет, запрос необходимо модифицировать.
Пример ответа сервера
Маркер обновления и вторичная аутентификация
1. Ошибка при аутентификации пользователя AD
При аутентификации пользователя AD в КриптоПро DSS появляется ошибка:
При анализе журнала ADFS можно обнаружить следующую ошибку:
Возможная причина возникновения ошибки: указан некорректный адрес проверяющей стороны КриптоПро DSS в ADFS/адрес указан без соблюдения регистра.
2. Ошибка «Учетные данные не содержат утверждения»
Возможные причины возникновения ошибки:
- в ADFS не добавлены правила преобразования утверждений, в соответствие с п. 2.4 – для WSFed или п. 3.4 руководства – для Oidc;
- были допущены ошибки при добавлении правил преобразования утверждений.
3. Ошибка «Пользователь не состоит ни в одной роли, либо из внешнего ЦИ передан неверный набор утверждений»
При аутентификации пользователя AD в КриптоПро DSS, после ввода учетных данных, появляется ошибка «Пользователь не состоит ни в одной роли, либо из внешнего ЦИ передан неверный набор утверждений»:
Возможные причины возникновения ошибки:
- в ADFS не добавлены правила преобразования утверждений, в соответствие с п. 2.4 – для WSFed или п. 3.4 руководства – для Oidc;
- были допущены ошибки при добавлении правил преобразования утверждений;
- осуществляется аутентификация в личном кабинете пользователя КриптоПро DSS, с использованием учетной записи Пользователя AD, состоящего в группе Операторов.
4. Ошибка «Проверка сертификата обработчиком маркеров не прошла»
При аутентификации пользователя AD в КриптоПро DSS появляется ошибка «Проверка сертификата обработчиком маркеров не прошла»:
Возможная причина возникновения ошибки:
При выполнении командлета Add-DssIdentityProvider, в соответствие с п. 2.1 – для WSFed или п. 3.2 руководства - для Oidc, был указан отпечаток неправильного сертификата.
5. Ошибка «Учётные данные должны содержать только одно утверждение»
Возможная причина возникновения ошибки:
С ADFS приходит маркер, который содержит в себе два утверждения Role, что вызвано ошибками при добавлении правил преобразования утверждений, в соответствие с п. 2.4 – для WSFed или п. 3.4 руководства – для Oidc.
6. Ошибка «ID4036»
При аутентификации пользователя/оператора AD в КриптоПро DSS появляется ошибка «ID4036: не удалось разрешить ключ, необходимый для расшифровки зашифрованного маркера безопасности, из следующего идентификатора ключа безопасности»:
Возможные причины возникновения ошибки:
- При настройке отношений доверия проверяющей стороны по протоколу WSFed, в соответствие с п. 2.2.7 руководства, был выбран сертификат, не соответствующий актуальному сервисному сертификату ЦИ КриптоПро DSS.
- На стороне КриптоПро DSS была выполнена замена сервисного сертификата ЦИ DSS, однако данный сертификат не был заменен в настройках проверяющей стороны ADFS (консоль управления ADFS → Отношения доверия проверяющей стороны → Открыть свойства проверяющей стороны → Шифрование → Обзор → Выбрать актуальный сервисный сертификат ЦИ КриптоПро DSS).
7. Ошибка «ID4037»
При аутентификации пользователя/оператора AD в КриптоПро DSS появляется ошибка «Не удалось разрешить ключ, необходимый для проверки подписи, из следующего идентификатора ключа безопасности»:
Возможные причины возникновения ошибки:
- При выполнении командлета Add-DssIdentityProvider, в соответствие с п. 2.1 – для WSFed или п. 3.2 руководства - для Oidc, был указан отпечаток неправильного сертификата.
- Был опубликован новый сертификат подписи маркеров ADFS, однако отпечаток данного сертификата не был указан на стороне КриптоПро DSS. Необходимо установить актуальный сертификат подписи маркеров в хранилище «Доверенные лица» локального компьютера сервера DSS, выполнить командлет: Set-DssIdentityProvider -IssuerName ADFS -Thumbprint "Отпечаток актуального сертификата подписи маркеров ADFS" и перезапустить пул приложений ЦИ КриптоПро DSS.
Читайте также: