Cryptopro web authentication какой логин
Перейти к содержимому

Cryptopro web authentication какой логин

  • автор:

Cryptopro web authentication какой логин

КриптоПро DSS поддерживает несколько методов аутентификации Пользователей DSS. Все методы аутентификации делятся на следующие группы:

  • Первичная аутентификация.
    • Аутентификация по логину и паролю
    • Аутентификация по сертификату
    • Подтверждение операций при помощи мобильного приложения myDSS
    • Подтверждение операций при помощи апплета на SIM-карте

    Первичная аутентификация используется при входе в Веб-интерфейс Пользователя и личный кабинет Пользователя на веб-интерфейсе Центре Идентификации.

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

    Вторичная аутентификация в КриптоПро DSS является вспомогательной и может дополнять первичную в качестве дополнительной меры безопасности. При этом вторичная аутентификация не ослабляет требований первичной.

    Примечание

    При настройке вторичной аутентификации необходимо обратить особое внимание на регистрацию Сервиса Подписи в качестве доверенной стороны на Центре Идентификации при помощи параметра -BackChannelUrl командлета Add-DssRelyingPartyTrust.

    Список доступных методов аутентификации приводится в выводе командлета Get-DssAuthenticationMethod. Включение/отключение метода аутентификации по идентификатору производится при помощи параметра -Uri командлетов Enable-DssAuthenticationMethod и Disable-DssAuthenticationMethod. Все неиспользуемые методы аутентификации должны быть отключены.

    Внимание!

    Идентификаторы методов аутентификации, описанных в данном разделе, приведены в начале каждого подраздела.

    Пример включения метода аутентификации по логину и паролю:

    Enable-DssAuthenticationMethod -Uri http://dss.cryptopro.ru/identity/authenticationmethod/password 

    Авторизация с использованием учетных данных владельца

    Данный сценарий не требует интерактивного взаимодействия Пользователя с Веб-интерфейсом ЦИ DSS.

    Спецификация описана в разделе 4.2 RFC 6749.

    Сценарий может быть представлен следующей схемой:

    image

    Для получения маркера доступа используется конечная точка /token . Клиент формирует следующий HTTP-запрос:

    Пример запроса

    POST https:////oauth/token HTTP/1.1 Content-Type: application/x-www-form-urlencoded content-length: 133 Connection: keep-alive grant_type=password&username=Test1&client_id=TestClient&resource=urn:cryptopro:dss:signserver:signserver&password=Test1Test1 
    Примечание

    Параметры передаются в теле запроса, но не в query-string.

    • grant_type — в данном сценарии имеет значение password .
    • username — логин Владельца ресурса.
    • password — пароль Владельца ресурса.
    • resource — идентификатор ресурса, для доступа к которому выпускается токен. Для Сервиса Подписи идентификатор фиксирован и имеет вид urn:cryptopro:dss:signserver: .
    • client_id — идентификатор клиента OAuth, зарегистрированный на ЦИ DSS.
    Примечание

    Для регистрации клиента и его последующей конфигурации можно воспользоваться командлетами Windows PowerShell Add-DssClient и Set-DssClient соответственно.

    Примечание

    При регистрации клиента параметр AllowedFlow должен иметь значение ResourceOwner .

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

    Параметр client_id в теле запроса должен был заменен на заголовок Authorization HTTP-запроса, имеющий значение Basic Base64(client_id:client_secret) .

    В случае успешного выполнения данного запроса ЦИ вернет следующий ответ:

    HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Length: 2196 Content-Type: application/json; charset=utf-8 Expires: -1 Date: Fri, 14 Dec 2018 12:35:53 GMT Connection: close

    Типовые ошибки

    HTTP-код Ошибка Описание
    400 invalid_client OAuth-клиент не зарегистрирован или неверно указан clientID .
    400 unauthorized_client OAuth-клиент использует незарегистрированный сценарий аутентификации (Flow) или был передан некорретный redirect_uri .
    400 invalid_request Неверно сформирован параметр resource.
    400 invalid_grant Для пользователя включено подтверждение операции входа в ЦИ с помощью вторичной аутентификации.
    500 An error has occurred Проверяющая сторона с идентификатором resource не зарегистрирована.

    Пример сообщения об ошибке

    HTTP/1.1 400 Bad Request Cache-Control: no-cache Pragma: no-cache Expires: -1 Date: Fri, 21 Dec 2018 13:46:42 GMT Connection: close

    Cryptopro web authentication какой логин

    Типовые ошибки при попытке выполнения авторизации на веб-интерфейсе сервисиса подписи.

    1. «OpenIdConnectMessage. Error was not null, indicating an error, Error: ‘unauthorized_client’. Error_Description ( may be empty): ‘The provided credentials of type ‘SharedSecret’ are invalid’. Error_uri (may be empty): ‘error_uri is null’.»

    Диагностика:
    Ошибка в «Журналы приложений и служб -> CryptoPro-> DSS-> IdentityService-> Admins».

    Пример:
    Source: ClientCredentialsValidator.
    The credentials of type ‘SharedSecret’ with value ‘secret_value’ is not registered for client with id ‘cryptopro.dss.frontend.frontend’.

    Возможные причины возникновения ошибки:
    В настройках доступа по OpenId Connect веб-интерфейса указано значение секрета, не соответствующее зарегистрированному для oauth-клиента центра идентификации.

    Рекомендуемое решение:
    — Отобразить список значений секретов для oauth-клиента центра идентификации (по умолчанию: cryptopro.dss.frontend.frontend), выполнив командлет: Get-DssClientSecret -ClientId cryptopro.dss.frontend.frontend|fl
    — Указать значение действующего секрета: Set-DssFeOidcSettings -ClientSecret
    — Перезапустить пул приложения веб-интерфейса: Restart-DssFeInstance

    2. unauthorized_client

    Диагностика:
    Ошибки в «Журналы приложений и служб -> CryptoPro-> DSS-> IdentityService-> Admins».

    А) Source: ClientValidator.
    The credentials for the client with id ‘cryptopro.dss.frontend.frontend’ of a type ‘SharedSecret’ is invalid. Error ‘unauthorized_client’. Additional info: [The provided credentials of type ‘SharedSecret’ expired at ‘expiration_date’.]

    Б) Source: AuthorizeRequestValidator.
    The ‘client_id’ parameter in the request is invalid. No registered client with id ‘cryptopro.dss.frontend.frontends is found.’

    В) Source: AuthorizeRequestValidator.
    The request is invalid. The client with id ‘cryptopro.dss.frontend.frontend’ is not allowed to use ‘AuthorizationCode’ flow.

    Возможные причины возникновения ошибки:
    — В настройках доступа по OpenId Connect веб-интерфейса указано значение секрета с истекшим сроком действия;
    — В настройках доступа по OpenId Connect веб-интерфейса указан идентификатор oauth-клиента, который не зарегистрирован на центре идентификации;
    — В списке допустимых для oauth-клиента сценариев отсутствует сценарий «AuthorizationCode».

    Рекомендуемое решение:

    А) Проверка сроков действия секретов и генерация новых:
    — Отобразить список значений секретов для oauth-клиента центра идентификации (по умолчанию: cryptopro.dss.frontend.frontend), выполнив командлет: Get-DssClientSecret -ClientId cryptopro.dss.frontend.frontend|fl
    — Если сроки действия всех секретов истекли — сгенерировать новый секрет: Set-DssClient -ClientId cryptopro.dss.frontend.frontend -GenerateSecret -SecretLifetime 0
    — Получить значение нового секрета: $secret = (Get-DssClientSecret -ClientId cryptopro.dss.frontend.frontend).value
    Указать значение нового секрета в настройках доступа по OpenId Connect веб-интерфейса: Set-DssFeOidcSettings -ClientSecret $secret
    — Перезапустить пул приложения веб-интерфейса: Restart-DssFeInstance
    — Перезапустить пул приложения центра идентификации: Restart-DssStsInstance

    Б) Проверка корректности указанного в настройках доступа по OpenId Connect веб-интерфейса идентификатора oauth-клиента центра идентификации:
    — Выполнить командлет: (Get-DssFeOidcSettings).ClientId
    — Убедиться, что клиент с идентификатором, полученным на прошлом шаге, есть в списке зарегистрированных на стороне центра идентификации. Идентификаторы клиентов можно получить, выполнив командлет: (Get-DssClient).ClientId
    — Если клиент не зарегистрирован — выполнить настройку в соответствие с примером.

    В) Добавить для oauth-клиента необходимые сценарии использования:
    — Выполнить командлет: Set-DssClient -ClientId ((Get-DssFeOidcSettings).ClientId) -AllowedFlow AuthorizationCode,ClientCredentials,TokenExchange
    — Перезапустить пул приложения центра идентификации: Restart-DssStsInstance

    3. Страница не найдена

    Диагностика:
    Ошибка в «Журналы приложений и служб -> CryptoPro-> DSS-> Frontend-> Admins».

    Пример:
    Ошибка в Веб-приложении:
    The controller for path ‘/DssTest/oauth/authorize’ was not found or does not implement IController.
    System.Web.HttpException: The controller for path ‘/DssTest/oauth/authorize’ was not found or does not implement IController.

    Возможные причины возникновения ошибки:
    В настройках доступа по OpenId Connect веб-интерфейса указаны некорректные адреса сервисов.

    Рекомендуемое решение:
    Выполнить настройку доступа по OpenId Connect веб-интерфейса, в соответствие с примером.

    4. «Запрос HTTP запрещен для схемы аутентификации клиентов «Anonymous»

    Диагностика:
    Ошибка в «Журналы приложений и служб -> CryptoPro-> DSS-> Frontend-> Admins».

    Пример:
    В процессе работы Веб-интерфейса произошла ошибка:
    Произошла ошибка во время работы контроллера CryptoPro.DSS.Web.Frontend.Admins.Controllers.CertificatesController
    Действие List
    System.ServiceModel.Security.MessageSecurityException: Запрос HTTP запрещен для схемы аутентификации клиентов «Anonymous».

    Возможные причины возникновения ошибки:
    — Для пулов приложений DSS не был предоставлен доступ к закрытым ключам сервисных сертификатов DSS;
    — В расширении EKU (Extended Key Usage) сервисных сертификатов DSS отсутствует назначение 1.3.6.1.5.5.7.3.2 — Проверка подлинности клиента;
    — В хранилище «Доверенные корневые центры сертификации» локального компьютера сервера DSS присутствуют несамоподписанные сертификаты;
    — В хранилище «Доверенные корневые центры сертификации» локального компьютера сервера DSS не установлены сертификаты издателей сервисных сертификатов DSS;
    — Невозможно выполнить проверку сервисных сертификатов DSS на отзыв.

    Рекомендуемое решение:
    — Убедиться, что пулам приложений DSS был предоставлен доступ к закрытым ключам сервисных сертификатов DSS.
    — Убедиться, что в расширении EKU (Extended Key Usage) сервисных сертификатов DSS присутствует назначение 1.3.6.1.5.5.7.3.2 — Проверка подлинности клиента.
    — Удалить/перенести в другие хранилища несамоподписанные сертификаты из хранилища «Доверенные корневые центры сертификации» локального компьютера сервера DSS, если таковые имеются. Найти такие сертификаты можно, выполнив командлет: Get-Childitem cert:\LocalMachine\root -Recurse | Where-Object
    — Убедиться, что в хранилище «Доверенные корневые центры сертификации» локального компьютера сервера DSS установлены сертификаты издателей сервисных сертификатов DSS.
    — Обеспечить проверку сервисных сертификатов DSS на отзыв (путем установки CRL в хранилище «Промежуточные центры сертификации» локального компьютера сервера DSS или обеспечив доступность CRL по ссылкам, указанным в расширении «Точки распространения списков отзыва» сервисных сертификатов DSS).

    5. Требуется делегирование

    Диагностика:
    Ошибка в «Журналы приложений и служб -> CryptoPro-> DSS-> Frontend-> Admins».

    Пример:
    Идентификатор экземпляра: 1/Frontend.
    В процессе работы Веб-интерфейса произошла ошибка:
    Произошла ошибка во время работы контроллера CryptoPro.DSS.Web.Frontend.Controllers.CertificatesController
    Действие List
    System.ServiceModel.FaultException`1[[CryptoPro.DSS.Common.Service.DssFault, CryptoPro.DSS.Common, Version=1.17.0.0, Culture=neutral, PublicKeyToken=cb703a801b9b4b55]]: Требуется делегирование.

    Возможные причины возникновения ошибки:
    В рамках одной сессии браузера была выполнена попытка сперва авторизоваться в личном кабинете оператора, а затем — в веб-интерфейсе сервиса подписи.

    Рекомендуемое решение:
    — Перезапустить браузер и попробовать еще раз авторизоваться в веб-интерфейсе сервиса подписи;
    — Открыть новую вкладку браузера в режиме «Инкогнито», и авторизоваться через нее в веб-интерфейсе сервиса подписи.

    6. Message: Authorization has been denied for this request

    Диагностика:
    Ошибка в «Журналы приложений и служб -> CryptoPro-> DSS-> SignServer-> Admins».

    Пример:
    Instance Unique Identifier: 1/signserver Source: Microsoft.Owin.Security.OAuth.OAuthBearerAuthenticationMiddleware Message: Authentication failed
    System.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException: IDX10505: Unable to validate signature. The ‘Delegate’ specified on TokenValidationParameters, returned a null SecurityKey.

    Возможные причины возникновения ошибки:
    — На сервисе подписи не настроены отношения доверия с центром идентификации;
    — Истек срок действия сервисного сертификата сервиса подписи.

    Рекомендуемое решение:
    — Запросить отпечаток сервисного сертификата ЦИ: $idp_cert = (Get-DssStsProperties).ServiceCertificate
    — Указать отпечаток сервисного сертификата ЦИ на сервисе подписи: Add-DssClaimsProviderTrust -IssuerName realsts -Thumbprint $idp_cert
    Примечание: если при выполнении второго командлета в Powershell возникла ошибка «Доверенный издатель с именем realsts уже добавлен в коллекцию» — необходимо выполнить командлет: Set-DssClaimsProviderTrust -IssuerName realsts -NewThumbprint $idp_cert
    — Проверить срок действия сервисного сертификата сервиса подписи. Если срок действия истек — необходимо перевыпустить его и скорректировать настройки в соответствие с руководством;
    — Перезагрузить пулы приложений центра идентификации и сервиса подписи, выполнив командлеты: Restart-DssStsInstance и Restart-DssSignServerInstance

    7. IDX10505: Unable to validate signature. The ‘Delegate’ specified on TokenValidationParameters, returned a null SecurityKey.

    Диагностика:
    Ошибка в «Журналы приложений и служб -> CryptoPro-> DSS-> Frontend-> Admins».

    Пример:
    Instance Unique Identifier: 1/frontend Source: Microsoft.Owin.Security.OAuth.OAuthBearerAuthenticationMiddleware Message: Authentication failed
    System.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException: IDX10505: Unable to validate signature. The ‘Delegate’ specified on TokenValidationParameters, returned a null SecurityKey.

    Возможные причины возникновения ошибки:
    — На веб-интерфейсе не настроены отношения доверия с центром идентификации;
    — Истек срок действия сервисного сертификата веб-интерфейса.

    Рекомендуемое решение:
    — Запросить отпечаток сервисного сертификата ЦИ: $idp_cert = (Get-DssStsProperties).ServiceCertificate
    — Указать отпечаток сервисного сертификата ЦИ на веб-интерфейсе: Add-DssFeClaimsProviderTrust -IssuerName realsts -Thumbprint $idp_cert
    Примечание: если при выполнении второго командлета в Powershell возникла ошибка «Доверенный издатель с именем realsts уже добавлен в коллекцию» — необходимо выполнить командлет: Set-DssFeClaimsProviderTrust -IssuerName realsts -NewThumbprint $idp_cert
    — Проверить срок действия сервисного сертификата веб-интерфейса. Если срок действия истек — необходимо перевыпустить его и скорректировать настройки в соответствие с руководством;
    — Перезагрузить пулы приложений центра идентификации и веб-интерфейса, выполнив командлеты: Restart-DssStsInstance и Restart-DssFeInstance

    Авторизация с использованием учетных данных владельца

    Данный сценарий не требует интерактивного взаимодействия Пользователя с Веб-интерфейсом ЦИ DSS.

    Спецификация описана в разделе 4.2 RFC6749.

    Сценарий может быть представлен следующей схемой:

    image

    Для получения маркера доступа используется конечная точка /token. Клиент формирует следующий HTTP-запрос:

    Пример запроса

    POST http:////oauth/token HTTP/1.1 Content-Type: application/x-www-form-urlencoded content-length: 133 Connection: keep-alive grant_type=password&username=Test1&client_id=TestClient&resource=urn:cryptopro:dss:signserver:signserver&password=Test1Test1 
    Примечание

    Параметры передаются в теле запроса, но не в query-string.

    • grant_type — в данном сценарии имеет значение password .
    • username — логин Владельца ресурса.
    • password — пароль Владельца ресурса.
    • resource — идентификатор ресурса, для доступа к которому выпускается токен. Для Сервиса Подписи идентификатор фиксирован и имеет вид urn:cryptopro:dss:signserver: .
    • client_id — идентификатор клиента OAuth, зарегистрированный на ЦИ DSS.
    Примечание

    Для регистрации клиента и его последующей конфигурации можно воспользоваться командлетами Windows PowerShell Add-DssClient и Set-DssClient соответственно.

    Примечание

    При регистрации клиента параметр AllowedFlow должен иметь значение ResourceOwner .

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

    Параметр client_id в теле запроса должен был заменен на заголовок Auhtorization HTTP-запроса, имеющий значение Basic Base64(client_id:client_secret) .

    В случае успешного выполнения данного запроса ЦИ вернет следующий ответ:

    HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Length: 2196 Content-Type: application/json; charset=utf-8 Expires: -1 Date: Fri, 14 Dec 2018 12:35:53 GMT Connection: close

    Типовые ошибки

    HTTP-код Ошибка Описание
    400 invalid_client OAuth-клиент не зарегистрирован или неверно указан clientID
    400 unauthorized_client OAuth-клиент использует незарегистрированный сценарий аутентификации (Flow) или был передан некорретный redirect_uri .
    400 invalid_request Неверно сформирован параметр resource
    500 An error has occurred 1. Проверяющая сторона с идентификатором resource не зарегистрирована.

    Пример сообщения об ошибке

    HTTP/1.1 400 Bad Request Cache-Control: no-cache Pragma: no-cache Expires: -1 Date: Fri, 21 Dec 2018 13:46:42 GMT Connection: close

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *