Подключение метода аутентификации myDSS
Раздел содержит руководство разработчика по работе с myDSS на Сервисе Управления Пользователями. В разделе приведены основные сценарии использования, примеры HTTP-запросов и ответов REST Сервиса Управления Пользователями.
Так же в разделе приведены рекомендации Администраторам по настройке DSS для реализации различных сценариев работы с myDSS.
Перед началом интеграции с Сервисом Управления Пользователями Администратору DSS необходимо:
- Выпустить и зарегистрировать на DSS cертификат аутентификации Оператора DSS
- Настроить сервер myDSS
- Включить метод аутентификации myDSS на Центре Идентификации
- Ввести лицензию на модуль аутентификации myDSS на Центре Идентификации
Сценарии должны выполняться учётной записью с ролью Оператора DSS.
Аутентификация Операторов DSS на Сервисе Управления Пользователями осуществляется по сертификату (двухстороннее TLS-соединение).
Последовательность шагов по регистрации пользователя:
- Регистрация логина пользователя.
- Назначение метода первичной аутентификации.
- Получение QR-кода с ключом аутентификации myDSS.
- Назначение myDSS в качестве второго фактора аутентификации.
- Назначение операций, требующие подтверждения через myDSS.
Вспомогательные действия:
- Обновление ключа аутентификации пользователя
- Поиск пользователя
- Получение сведенией о myDSS
- Отключение аутентификации через myDSS
- Задание отпечатка устройства
Регистрация логина пользователя
В качестве идентификатора (логина) пользователя могут выступать:
- логин
- адрес электронной почты
- номер телефона
Внимание!
По умолчанию на DSS в качестве идентификатора разрешён только Логин.
Разрешить/запретить другие идентификаторы пользователя может Администратор DSS выполнив команду в консоли PowerShell:
Set-DssStsProperties -AvailableIdentitifers Login,Email,PhoneNumber
Примеры запросов
- Регистрация пользователя по логину
POST https://host/STS/ums/user HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 28
Expect: 100-continue
{"Login":"DssTest-6f956360"}
- Регистрация пользователя по логину, email и номеру телефона
POST https://host/STS/ums/user HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 92
Expect: 100-continue
Connection: Keep-Alive
{"Login":"DssTest-05e789e7","PhoneNumber":"+70004064846","Email":"DssTest-0678acd4@dss.com"}
Пример ответа
В ответ DSS вернёт идентификатор созданного пользователя (DssUserId). DssUserId используется при вызове любых методов Сервиса Управления Пользователями:
- возвращающих сведения об учётной записи пользователя
- изменяющих учётную запись пользователя.
Вызывающая система может сохранить DssUserId. Это позволит ускорить последующие обращения к Сервису Управления Пользователями, так как не потребуется получать DssUserId повторно.
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Date: Thu, 23 Aug 2018 14:59:09 GMT
Content-Length: 38
"264caee9-b77c-4b8c-b52a-ef9dd502f959"
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | invalid_identifiers | Переданный идентификатор запрещённый на DSS. |
400 | invalid_phone | Пользователь с указанным номер телефона уже зарегистирован. |
400 | invalid_email | Пользователь с указанным email уже зарегистирован. |
400 | invalid_login | Пользователь с указанным логином уже зарегистирован. |
500 | An error has occurred | 1. В поле Login указан номер телефона или email. 2. Неверно сформирован email. 3. Неверно сформирован номер телефона. |
Назначение метода первичной аутентификации
После регистрации логина пользователя необходимо назначить метод первичной аутентификации. Пользователю может быть назначен один или несколько методов первичной аутентификации:
Метод | Описание |
---|---|
/user/{DssUserId}/authmethod/idonly | Только идентификация |
/user/{DssUserId}/authmethod/password | Аутентификация по паролю |
/user/{DssUserId}/authmethod/cert | Аутентификация по сертификату |
/user/{DssUserId}/authmethod/external | Аутентификация через сторонний Центр Идентификации |
Чаще всего при использовании myDSS в качестве метода первичной аутентификации назначают "Только идентификация".
Внимание!
Назначаемый метод аутентификации должен быть разрешён на DSS. Включить или отключить метод аутентификации должен Администратор на сервере DSS.
Разрешить/запретить метод аутентификации можно на Сервере DSS командами:
Enable-DssAuthenticationMethod -Id <method_ID>
Disable-DssAuthenticationMethod -Id <method_ID>
Внимание!
Совместное включение методов idonly и password допустимо, но использоваться будет метод "Только идентификация".
Примеры запросов
Назначение метода первичной аутентификации "Только идентификация"
POST https://host/STS/ums/user/d0bfa4e1-808d-4c28-b3cb-0dc5a591d300/authmethod/idonly HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 2
Expect: 100-continue
{}
Пример ответа
Назначение метода аутентифиации не имеет возвращаемого значения.
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Date: Thu, 23 Aug 2018 16:35:38 GMT
Content-Length: 0
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | wrong_operation | Метод аутентификации уже назначен. |
400 | invalid_authn_method | Метод аутентификации запрещён на сервере DSS. |
404 | user_not_found | Пользователь не найден. |
Получение QR-кода с ключом аутентификации myDSS
Перед назначением пользователю метода аутентификации myDSS необходимо получить QR-код, содержащий ключ аутентификации пользователя. QR-код должнен быть передан пользователю. Отсканировав QR-код пользователь загрузит ключ аутентификации в мобильное приложение myDSS.
Ключ аутентификации, передаваемый в QR-коде, может быть защищён на коде активации. Код активации передаётся пользователю в SMS или email сообщении.
Требование защиты ключа аутентификации на коде активации настраивается Администратором на сервере DSS и распространяется на всех пользователей.
Set-DssMobileAuthProperties -KeyInfoDivideRequired 1
Код активации состоит из цифр. Минимальная длина кода - 6 цифр.
Изменить длину кода активации может Администратор DSS выполнив команду в консоли PowerShell:
Set-DssMobileAuthProperties -SecondKeyPartLength 8
Примечание
Для отправки кода активации в SMS или Email Администратору необходимо подключить и настроить соответствующий модуль оповещения на сервере DSS.
Примеры запросов
- Пример получения QR-кода без кода активации
POST https://host/STS/ums/user/29665c07-e0e1-496a-b8f6-96ac5f59501b/mobileauth HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 50
Expect: 100-continue
{ }
- Пример получения QR-кода с кодом активации, доставляемом в SMS или Email
Для передачи кода активации в SMS или Email необходимо указать параметр UserContactInfoType
, который может принимать значение
- EmailAddress
- PhoneNumber
В параметре UserContactInfo
передаётся адрес электронной почты или номер телефона.
POST https://host/STS/ums/user/3901bd80-0cc4-4011-b197-3064dc41d626/mobileauth HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 119
Expect: 100-continue
{"UserContactInfo":"+70007321826","UserContactInfoType":"PhoneNumber"}
- Пример получения ключа аутентификации в виде XML
Если используется собственное мобильное приложение на основе PayControl SDK,
то ключ аутентификации можно запросить в виде XML.
Для получения ключа аутентификации в виде XML в запросе необходимо указать параметр NeedXmlKeyInfo
со значением true и код активации KeyInfoPinCode
POST https://host/STS/ums/user/a3c1fda4-857b-45f3-b45d-8567e1d62318/mobileauth HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 146
Expect: 100-continue
{"UserContactInfo":"+70000214402","UserContactInfoType":"PhoneNumber","NeedXmlKeyInfo":true,"KeyInfoPinCode":"12345678","DelayedActivation":false}
Пример ответа
Сервер возвращает следующие данные:
QrCode
- изображение в формате gif в кодировке Base64KeyExpirationTime
- срок действия ключа пользователяExternalUserId
- идентификатор пользователя на сервере myDSS. Идентификатор может быть использован для получения сведений о ключе аутентификации пользователя.
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 7711
{"XmlKeyInfo":"","ExternalUserId":"ffcfa8a0-3ef0-4266-b9d4-8af3b610d163","QrCode":"R0lGODlhLAEsAfcAAAAAAAAAM ...oir7ojN7ojv7okB7pfB4QADs=","KeyExpirationTime":"2018-09-22T00:00:00"}
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | invalid_contact_info | 1. Требуется предоставить номер телефона или email для отправки кода активации. 2. Указан неверный тип данных для отправки кода активации. |
404 | user_not_found | Пользователь не найден. |
400 | wrong_operation | Попытка повторно получить QR-код. Для обнолвения ключа пользователя необходимо отправить PATCH запрос. |
500 | An error has occurred | 1. Метод аутентификации myDSS запрещен на сервере DSS. 2. Истекла лицензия на myDSS на сервере DSS. |
Назначение myDSS в качестве второго фактора аутентификации
После того как пользователю создан ключ аутентификации необходимо назначить метод аутентификации myDSS.
Пример запроса
POST https://host/STS/ums/user/44cdb94b-7168-4b26-b02a-a734510873e8/authmethod/mobileauth?level=1 HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 2
Expect: 100-continue
{}
Внимание!
Значение параметра level
должно быть равно 1
Пример ответа
Метод не имеет возвращаемого значения.
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Date: Thu, 23 Aug 2018 21:02:26 GMT
Content-Length: 0
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | invalid_authentication_scheme | Указан неверный уровень метода аутентификации. |
404 | user_not_found | Пользователь не найден. |
400 | authn_method_not_confirmed | Попытка назначить метод аутентификации не получив QR-код. |
Назначение операций, требующие подтверждения через myDSS
После получения QR-кода и назначения пользователю myDSS необходимо задать список операций требующий подтверждения с помощью myDSS.
Про типы операций, для которых можно настроить подтверждение, и их идентифкаторы можно прочитать на странице Типы Операций. В запросе необходимо перечислить коды операций, которые будет подтверждать пользователь.
Пример запроса
POST https://host/STS/ums/user/b33f2148-70de-4e2b-b508-db3f8bf72a7e/operationpolicy HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 5
Expect: 100-continue
[2, 16, 1024]
Пример ответа
Метод не имеет возвращаемого значения
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Content-Length: 0
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | invalid_authentication_scheme | Указан неверный уровень метода аутентификации. |
404 | user_not_found | Пользователь не найден. |
400 | wrong_operation | Оператору запрещено изменять список операций, требующих подтверждения. |
Обновление ключа аутентификации пользователя
Ключ аутентификации пользователя имеет ограниченный срок действия. Ключ аутентификации необходимо переодически обновлять. Процедура смены ключа аналогична получению первого ключа аутентификации
Примечание
Отличие в используемом HTTP-методе - для обновления ключа используется метод PATCH.
Флаг DelayedActivation
отвечает за режим активации нового ключа пользователя:
- Если флаг отсутствует в запросе или равен false, то новый ключ пользователя вступает в действие немедленно. Пользователь не сможет подтверждать операции пока не отсканирует QR-код с новым ключом.
- Если флаг указан в запросе со значением true, то новый ключ пользователя вступит в действие в момент, когда пользователь отсканирует QR-код с новым ключом. Пользователь сможет продолжить использование текущего ключа до истечения срока его действия.
Пример запроса
PATCH https://host/STS/ums/user/d217ee28-0f04-45d2-b71a-0ebb50ee7573/mobileauth HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 119
Expect: 100-continue
{"UserContactInfo":"+70004297594","UserContactInfoType":"PhoneNumber"}
Пример запроса с отложенной активацией ключа
PATCH https://host/STS/ums/user/6b33998b-ae10-4132-9291-9fbc97aa0942/mobileauth HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 118
Expect: 100-continue
{"UserContactInfo":"+70005471676","UserContactInfoType":"PhoneNumber","DelayedActivation":true}
Пример ответа
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 7687
{"XmlKeyInfo":"","QrCode":"R0lGODlhL ... oA7pAQEAOw==","KeyExpirationTime":"2018-09-23T00:00:00"}
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | invalid_authentication_scheme | Указан неверный уровень метода аутентификации. |
404 | user_not_found | Пользователь не найден. |
400 | wrong_operation | Оператора запрещено изменять список операций, требующий подтверждения. |
Повторная отправка кода активации пользователю
Если ключ аутентификации уже назначен пользователю и защищён на коде активации, то можно сделать повторную отправку кода активации ключа.
Требование защиты ключа аутентификации на коде активации настраивается Администратором на сервере DSS и распространяется на всех пользователей.
Set-DssMobileAuthProperties -KeyInfoDivideRequired 1
Для передачи кода активации в СМС или по адресу электронной почты необходимо указать параметр UserContactInfoType
, который может принимать значение
- EmailAddress
- PhoneNumber
В параметре UserContactInfo
передаётся адрес электронной почты или номер телефона пользователя.
Пример запроса
Метод не имеет возвращаемого значения.
POST /STS/ums/user/0a0eaf08-665e-452c-a5b0-e342b3c43a3c/mobileauth/activationcode HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
{"UserContactInfo":"+70007321826","UserContactInfoType":"PhoneNumber"}
Пример ответа
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Content-Length: 0
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
400 | invalid_contact_info | 1. Нет возможности отправить вторую часть ключевой информации: не задана контактная информация пользователя. 2. Неизвестный тип контактной информации: "EmailAddrfess". |
400 | wrong_operation | Код активации не требуется в соответствии с настройками сервиса. |
404 | user_not_found | Пользователь не найден. |
Поиск пользователя
Сервис Управления пользователями предоставляет несколько возможностей поиска пользователя:
- По логину, номеру телефона или email
- По логину пользователя во внешнем ЦИ
- По идентификатору DssUserId
- Расширенный поиск
По логину, номеру телефона или email
Пример запроса
Тип ключа поиска может принимать значения (значение параметра type
):
- Login
- PhoneNumber
GET https://host/STS/ums/user?type=Login&value=DssTest-dc3bf3f5 HTTP/1.1
Accept: application/json
Host: host
Пример ответа
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 334
{"UserId":"d1831dea-985f-4df1-a54b-2497eeace2f2","Login":"DssTest-dc3bf3f5","PhoneNumber":null,"Email":null,"PhoneConfirmed":false,"EmailConfirmed":false,"DisplayName":null,"DistinguishName":"","AccountLocked":false,"Group":"Default","CreationDate":"2018-08-24T14:36:33.02","LockoutDate":null,"LastLoginDate":"2018-08-24T14:36:33.02"}
По логину пользователя во внешнем ЦИ
Сервис управления Пользователями предоставляет возможность поиска Пользователей в DSS по внешнему логину. В данном
случае в запросе необходимо указать имя внешнего ЦИ, под которым он зарегистрирован в ЦИ КриптоПро DSS. Получить имя
внешнего ЦИ можно в выводе командлета Get-DssIdentityProvider. Имя
ЦИ соответствует информации, выведенной в поле IssuerName
.
Пример запроса
GET https://host/STS/ums/user?type=Login&value=DssTest-dc3bf3f5&issuerName=ADFS HTTP/1.1
Accept: application/json
Host: host
Пример ответа
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 334
{"UserId":"d1831dea-985f-4df1-a54b-2497eeace2f2","Login":"DssTest-dc3bf3f5","PhoneNumber":null,"Email":null,"PhoneConfirmed":false,"EmailConfirmed":false,"DisplayName":null,"DistinguishName":"","AccountLocked":false,"Group":"Default","CreationDate":"2018-08-24T14:36:33.02","LockoutDate":null,"LastLoginDate":"2018-08-24T14:36:33.02"}
По идентификатору DssUserId
Пример запроса
GET https://host/STS/ums/user/d1831dea-985f-4df1-a54b-2497eeace2f2 HTTP/1.1
Accept: application/json
Host: host
Пример ответа
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 334
{"UserId":"d1831dea-985f-4df1-a54b-2497eeace2f2","Login":"DssTest-dc3bf3f5","PhoneNumber":null,"Email":null,"PhoneConfirmed":false,"EmailConfirmed":false,"DisplayName":null,"DistinguishName":"","AccountLocked":false,"Group":"Default","CreationDate":"2018-08-24T14:36:33.02","LockoutDate":null,"LastLoginDate":"2018-08-24T14:36:33.02"}
Расширенный поиск
Расширенный поиск позволяет применять различные фильтры для поиска пользователей. Результатом выполнения метода может быть группа пользователей, отвечающая параметрам фильтра.
Поиск пользователей можно выполнить по одному или нескольким параметрам:
Параметр | Код | Описание |
---|---|---|
Login | 0 | Логин пользователя |
PhoneNumber | 1 | Номер телефона |
2 | Адрес электронной почты | |
CreateDate | 3 | Дата создания учётной записи |
GroupId | 4 | Идентификаторы группы пользователя |
Код параметра указывается в поле Column
Операции сравнения могут быть следующих типов:
Тип | Код | Описание |
---|---|---|
Equal | 0 | Строгое равенство |
NotEqual | 1 | Не равно |
Like | 2 | Содержит |
Greater | 3 | Больше |
Less | 4 | Меньше |
Код операции указывается в поле Operation
Тип cравнения Like определяет, совпадает ли указанная символьная строка с заданным шаблоном. Шаблон может включать обычные символы и символы-шаблоны. Во время сравнения с шаблоном необходимо, чтобы его обычные символы в точности совпадали с символами, указанными в строке. Символы-шаблоны могут совпадать с произвольными элементами символьной строки.
Поддерживаются следующие символы шаблоны:
Символ-шаблон | Описание | Пример |
---|---|---|
% | Любая строка, содержащая ноль или более символов. | %вано% |
(подчеркивание) | Любой одиночный символ. | _етров |
[ ] | Любой одиночный символ, содержащийся в диапазоне ([a-f]) или наборе ([abcdef]). | [Л-С]омов |
[^] | Любой одиночный символ, не содержащийся в диапазоне ([^a-f]) или наборе ([^abcdef]). | 'ив[^а]% |
Параметры StartPosition
и EndPosition
определяют начальную и конечную позицию из итоговой выборки.
Данные параметры могут быть использованы для постраничной выборки пользователей
При поиске пользователей по времени создания значение фильтра должно иметь следующий формат: yyyy-MM-ddThh:mm:ss
Общее количество элементов подпадающих под критерии фильтра возвращается в параметре TotalCount
.
Количество элементов отданных методом возвращается в параметре AffectedCount
:
AffectedCount <= EndPosition - StartPosition
Примеры запросов
Получить пользователя с заданным логином:
POST https://host/STS/ums/users HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 101
Expect: 100-continue
{"StartPosition":1,"EndPosition":1,"Filters":[{"Column":0,"Operation":0,"Value":"DssTest-dc3bf3f5"}]}
Проверка были ли создан пользователь с заданным логином в указанным промежуток времени:
POST https://host/STS/ums/users HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 172
Expect: 100-continue
{"StartPosition":1,"EndPosition":1,"Filters":[{"Column":0,"Operation":0,"Value":"DssTest-2fa204c5"},{"Column":3,"Operation":3,"Value":"2018-08-24T15:12:12.4683672+03:00"}]}
Получить пользователей созданных в указанный промежуток времени:
POST https://host/STS/ums/users HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 161
Expect: 100-continue
{"StartPosition":1,"EndPosition":10,"Filters":[{"Column":3,"Operation":4,"Value":"2018-08-25T04:24:50"},{"Column":3,"Operation":3,"Value":"2018-08-23T04:24:50"}]}
Пример ответа
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 386
{"UserInfos":[{"UserId":"d1831dea-985f-4df1-a54b-2497eeace2f2","Login":"DssTest-dc3bf3f5","PhoneNumber":null,"Email":null,"PhoneConfirmed":false,"EmailConfirmed":false,"DisplayName":null,"DistinguishName":"","AccountLocked":false,"Group":"Default","CreationDate":"2018-08-24T14:36:33.02","LockoutDate":null,"LastLoginDate":"2018-08-24T14:36:33.02"}],"TotalCount":2047,"AffectedCount":1}
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
404 | user_not_found | Пользователь не найден. |
500 | An error has occurred | Неверно указано значение или тип фильтра. |
Получение сведенией о myDSS
Ниже приведён список методов, которые позволяют проверить:
- назначен ли пользователю ключ аутентификации myDSS
- срок действия ключа аутентификации myDSS
- назначен ли пользователю метод аутентификации myDSS
- список действий требующих подтверждения
Проверка назначен ли ключ аутентификации myDSS пользователю
Пример запроса
GET https://host/STS/ums/user/c9b4b217-edc1-4329-be4d-1cddaecdea4d/mobileauth HTTP/1.1
Accept: application/json
Host:host
Примеры ответов
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 91
{"UserId":"9912c464-8d2e-4145-bcee-587f10dad61b","KeyExpirationTime":"2018-09-23T00:00:00"}
Если ключ аутентификации не назначен пользователю ответ сервиса будет содержать null:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 4
null
Получение схемы аутентификации пользователя
Пример запроса
GET https://host/STS/ums/user/01df2040-3e16-4405-9947-fc4152448c13/authmethod HTTP/1.1
Accept: application/json
Host: host
Пример ответа
Сервис возвращает список элементов содержащих:
- Идентификатор метода аутентификации
- Уровень метода аутентификации
Методы первичной аутентификации имеют уровень 0.
Методы вторичной аутентификации имеют уровень 1.
Список идентификаторов методов первичной аутентификации:
Идентификатор | Описание |
---|---|
http://schemas.microsoft.com/ws/2012/09/identity/authenticationmethod/none | Только идентификация |
http://dss.cryptopro.ru/identity/authenticationmethod/password | По паролю |
http://dss.cryptopro.ru/identity/authenticationmethod/certificate | По сертификату |
http://dss.cryptopro.ru/identity/authenticationmethod/saml | Через сторонний Центр Идентификации |
Список идентификаторов методов вторичной аутентификации:
Идентификатор | Описание |
---|---|
http://dss.cryptopro.ru/identity/authenticationmethod/mobile | Аутентификация через мобильное приложение myDSS 1.0 |
http://dss.cryptopro.ru/identity/authenticationmethod/otpviasms | Одноразовые пароли по SMS |
http://dss.cryptopro.ru/identity/authenticationmethod/otpviaemail | Одноразовые пароли по Email |
http://dss.cryptopro.ru/identity/authenticationmethod/oath | Аутентификация по протоколу Oath |
http://dss.cryptopro.ru/identity/authenticationmethod/simauth | Аутентификация на SIM-карте |
http://dss.cryptopro.ru/identity/authenticationmethod/airkey | Аутентификация через мобильное приложение Indeed AirKey |
http://dss.cryptopro.ru/identity/authenticationmethod/mydss | Аутентификация через мобильное приложение с DSS SDK |
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 189
[{"MethodUri":"http://schemas.microsoft.com/ws/2012/09/identity/authenticationmethod/none","Level":0},{"MethodUri":"http://dss.cryptopro.ru/identity/authenticationmethod/mobile","Level":1}]
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
404 | user_not_found | Пользователь не найден. |
Получение списка операций, требующих подтверждения
Пример запроса
GET https://host/STS/ums/user/8386abb0-b3d0-44c0-96a7-90d635e45d21/operationpolicy HTTP/1.1
Accept: application/json
Host: 192.168.109.149
Пример ответа
Описание операций приведено в разделе выше
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 679
[{"Action":"Issue","ConfirmationRequired":true},{"Action":"SignDocument","ConfirmationRequired":true},{"Action":"SignDocuments","ConfirmationRequired":false},{"Action":"DecryptDocument","ConfirmationRequired":false},{"Action":"CreateRequest","ConfirmationRequired":false},{"Action":"ChangePin","ConfirmationRequired":false},{"Action":"RenewCertificate","ConfirmationRequired":true},{"Action":"RevokeCertificate","ConfirmationRequired":false},{"Action":"HoldCertificate","ConfirmationRequired":false},{"Action":"UnholdCertificate","ConfirmationRequired":false},{"Action":"DeleteCertificate","ConfirmationRequired":false},{"Action":"PrivateKeyAccess","ConfirmationRequired":false}]
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
404 | user_not_found | Пользователь не найден. |
Отключение myDSS
Отключение аутентификации через myDSS состоит из последовательности шагов:
- Отключить требования подтверждения операций
- Отключить метода аутентификации myDSS
- Удалить ключ аутентификации пользователя
Отключение требований подтверждения операций
Примечание
Отключение методов аутентификации требуется, если myDSS является единственным способом вторичной аутентификации. Если пользователю назначены другие способы аутентификации (например, одноразовые пароли по SMS), то отключение методов не требуется.
Примечание
Если отключить метод аутентификации myDSS, не отключив требование подтверждения операций операций, то пользователь не сможет выполнить данные операции.
Пример запроса
POST https://192.168.109.149/STS/ums/user/206adc4f-3262-469c-9871-b7a7cabaa979/operationpolicy HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: 192.168.109.149
Content-Length: 2
Expect: 100-continue
[]
Пример ответа
Метод не имеет возвращаемого значения
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Content-Length: 0
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
404 | user_not_found | Пользователь не найден. |
Отключение метода аутентификации
Пример запроса
DELETE https://host/STS/ums/user/e06a4bc1-4c31-4f8d-a7a7-920b66ca4ad6/authmethod/mobileauth HTTP/1.1
Accept: application/json
Host: host
Content-Length: 0
Пример ответа
Метод не имеет возвращаемого значения
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Content-Length: 0
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
404 | user_not_found | Пользователь не найден. |
Удаление ключа аутентификации
Пример запроса
DELETE https://host/STS/ums/user/a17efd43-181a-45b7-8d60-088b6889480c/mobileauth HTTP/1.1
Accept: application/json
Host: host
Content-Length: 0
Пример ответа
Методе не имеет возвращаемого значения.
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Content-Length: 0
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
404 | user_not_found | Пользователь не найден. |
400 | wrong_operation | Нельзя удалить ключ аутентификации пользователя не отключив метод аутентификации myDSS |
Задание отпечатка устройства
Отпечаток устройство однозначно связывает ключ аутентификации и мобильное устройство пользователя. В типовом сценарии отпечаток устройство регистрируется автоматически в момент сканирования QR-кода с ключом аутентификации.
Требуется ли привязка ключа аутентификации к устройству пользователя задаётся Администратором на сервере DSS:
Set-DssMobileAuthProperties -DeviceFingerprintRequired 1
Пример запроса
POST https://host/STS/ums/user/78d9d77b-6b76-4045-a8e0-579e70fba468/mobileauth/thumbprint HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=utf-8
Host: host
Content-Length: 8
Expect: 100-continue
"abcdef"
Пример ответа
Метод не имеет возвращаемого значения.
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Expires: -1
Content-Length: 0
Типовые ошибки
HTTP-код | Ошибка | Описание |
---|---|---|
404 | user_not_found | Пользователь не найден. |