Как правильно зарегистрировать приложение#
Аутентификация в терминологии OIDC/OAuth 2.0 является результатом взаимодействия трех сторон:
сервиса авторизации (
Authorization Server
) или поставщика ресурса (Resource Server
), в качестве которых выступает Blitz Identity Provider;системы-клиента (
Client
), в качестве которой выступает приложение, которое запрашивает доступ ресурсу (информации и данным пользователя);владельца ресурса (
Resource Owner
), в качестве которого выступает пользователь, так как в ходе аутентификации он разрешает доступ к данным о себе.
Первым шагом при подключении приложения является его регистрация в качестве системы-клиента в Blitz Identity Provider. В запросах на проведение аутентификации будут использоваться и учитываться данные, заданные при регистрации приложения:
идентификатор приложения (
client_id
);секрет приложения (
client_secret
).разрешенные адреса возврата (списки
redirect_uri
иpost_logout_redirect_uri
);перечень запрашиваемых разрешений (список
scope
);информация о нестандартных режимах, необходимых приложению:
приложению необходимо получать
refresh_token
– по умолчанию приложениюrefresh_token
возвращаться не будет; при выборе этого режима нужно дополнительно указать требуемый срок действияrefresh_token
(по умолчанию срок действия маркера будет 1 день, максимально можно запросить срок действия 365 дней);приложению необходимо использовать нестандартный сценарий взаимодействия (например,
Implicit Flow
,Hybrid Flow
) – по умолчанию приложению разрешено использовать толькоAuthorization Code Flow
;приложению нужно получать маркер доступа в формате
JWT
– по умолчанию маркер доступа предоставляется в форматеopaque
;приложению нужно получать маркер доступа (
access_token
) с нестандартным сроком действия – стандартно маркер доступа действует 1 час;
перечень дополнительных атрибутов, которые Blitz Identity Provider должен добавить в маркер идентификации (дополнительные атрибуты для передачи в составе
id_token
);режим входа (вход как физического лица или как представителя организации).
идентификатор мобильного приложения (
software_id
);первичный маркер доступа (
Initial Access Token
);метаданные приложения в форме JWS-токена (
software_statement
).разрешенные адреса возврата (списки
redirect_uri
иpost_logout_redirect_uri
);перечень запрашиваемых разрешений (список
scope
);нестандартные режимы, необходимые приложению:
приложению необходимо получать
refresh_token
– по умолчанию приложениюrefresh_token
возвращаться не будет; при выборе этого режима нужно дополнительно указать требуемый срок действияrefresh_token
(по умолчанию срок действия маркера будет 1 день, максимально можно запросить срок действия 365 дней);приложению необходимо использовать нестандартный сценарий взаимодействия (например,
Implicit Flow
,Hybrid Flow
) – по умолчанию приложению разрешено использовать толькоAuthorization Code Flow
;приложению нужно получать маркер доступа в формате
JWT
– по умолчанию маркер доступа предоставляется в форматеopaque
;приложению нужно получать маркер доступа (
access_token
) с нестандартным сроком действия – стандартно маркер доступа действует 1 час;
перечень дополнительных атрибутов, которые Blitz Identity Provider должен добавить в маркер идентификации (дополнительные атрибуты для передачи в составе
id_token
);режим входа (вход как физического лица или как представителя организации).
Примечание
При разработке мобильного приложения можно использовать как общие Initial Access Token
и software_statement
для своих iOS/Android-реализаций, так и запросить получение различных наборов Initial Access Token
и software_statement
для каждой ОС и, возможно, каждой редакции (телефон/планшет) и даже версии приложения. Для простоты дальнейшего изложения в тексте документа будет подразумеваться, что мобильное приложение использует один общий Initial Access Token
и один общий software_statement
.
При создании в мобильных приложениях функции входа с использованием Blitz Identity Provider рекомендуется учитывать следующие особенности:
пользователям мобильных приложений неудобно вводить при каждом входе логин и пароль на веб-странице аутентификации Blitz Identity Provider. Вместо этого им привычнее при повторных входах использовать ПИН-код приложения или Touch ID/Face ID;
пользователь может использовать свою учетную запись Blitz Identity Provider для входа в несколько установок одного и того же мобильного приложения (например, войти в приложение, установленное на iPhone, и войти в это же приложение, установленное на iPad). Пользователь должен иметь возможность отозвать выданные этим установкам приложений права доступа к своим сведениям в Blitz Identity Provider;
по причинам безопасности нежелательно хранить на устройстве пользователя (внутри сборки мобильного приложения) пароль приложения (
client_secret
), используемый для взаимодействия приложения с Blitz Identity Provider.
Чтобы учесть изложенные выше особенности, в Blitz Identity Provider предусмотрен ряд специальных механизмов, предназначенных для использования мобильными приложениями.
Рекомендуемый сценарий взаимодействия мобильного приложения с Blitz Identity Provider описан в Подключение мобильного приложения.
Ниже вы найдете информацию о том, как определить, какие разрешенные адреса возврата, разрешения scope
, дополнительные атрибуты в id_token
вы можете задать при регистрации приложения в Blitz Identity Provider.
Как определить адреса возврата
Запрос на проведение идентификации/аутентификации пользователя содержит ссылку возврата при авторизации (redirect_uri
), куда должен быть возвращен пользователь после прохождения идентификации/аутентификации. Допустимые ссылки возврата должны соответствовать зарегистрированным в Blitz Identity Provider разрешенным префиксам.
Если в запросе на идентификацию/аутентификацию указана ссылка возврата, и она не соответствует ни одному из указанных префиксов, то в идентификации/аутентификации будет отказано.
В зависимости от типа подключаемого приложения рекомендуется использовать следующие префиксы ссылок возврата:
При подключении веб-приложений в качестве префиксов ссылок возврата использовать доменные имена приложений. Например, если после проведения аутентификации требуется вернуть пользователя на
https://domain.com/callback
, то в качестве префикса ссылки возврата следует указатьhttps://domain.com/
.Предупреждение
При подключении к продуктивной среде Blitz Identity Provider веб‑приложение должно использовать в качестве
redirect_uri
иpost_logout_redirect_uri
только HTTPS-обработчики. Использование HTTP для взаимодействия с продуктивной средой Blitz Identity Provider запрещено.При подключении мобильных приложений в качестве префиксов ссылок возврата рекомендуется указать сами ссылки возврата одного из типов: ссылки типа
private‑use URI scheme»
(например,com.example.app:/oauth2redirect/example‑provider
) или ссылки типаUniversal links
(например,https://app.example.com/oauth2redirect/example-provider
).Примечание
Ссылки типа
Universal links
доступны начиная с iOS 9 и Android 6.0 и являются предпочтительными для использования. Ссылкиprivate-use URI scheme
рекомендуется использовать только в случае, если приложение должно работать на более ранних версиях iOS/Android.
Запрос на проведение логаута содержит ссылку возврата при логауте (post_logout_redirect_uri
). Эта ссылка указывает, куда должен быть возвращен пользователь после успешно выполненного логаута. Допустимые ссылки возврата должны соответствовать зарегистрированным в Blitz Identity Provider разрешенным префиксам (префикс должен содержать доменное имя приложения и часть пути, минимум, https://domain.com/
). Если в запросе на логаут указана ссылка возврата, и она не соответствует ни одному из указанных префиксов, то будет отображена ошибка.
Какие разрешения можно запросить
Разрешения (scope
в терминологии OIDC/OAuth 2.0) определяют, какие данные и какие именно права на выполнение каких операций получит приложение по результатам аутентификации.
Перечень предусмотренных в Blitz Identity Provider разрешений представлен в таблице.
Доступные разрешения (scope)
Разрешение |
Описание |
Состав получаемых атрибутов |
---|---|---|
|
Техническое разрешение, указывающее на то, что аутентификация проводится согласно спецификации OIDC |
При запросе этого |
|
Основные данные профиля пользователя |
Список данных:
|
|
Получение списка групп пользователя |
Каждая запись в списке включает следующие атрибуты организации:
|
|
Разрешение на выполнение сквозного входа в веб-приложение из мобильного приложения |
Актуально только для мобильных приложений. |
Какие дополнительные атрибуты можно включить в id_token
Обычно нет необходимости получать атрибуты пользователя непосредственно из маркера идентификации (id_token
) – более простым и рекомендуемым способом является получение данных пользователя через вызов REST-сервиса.
Если все же необходимо получить сведения о пользователе в составе id_token, то доступные атрибуты выбираются из следующего списка.
Возможные дополнительные атрибуты пользователя в id_token
Атрибут |
Описание |
---|---|
|
Фамилия |
|
Имя |
|
Отчество |
|
Адрес электронной почты |
|
Мобильный телефон |
Следующие атрибуты заполняются только в том случае, если пользователь вошел в Blitz Identity Provider через ЕСИА в качестве сотрудника организации.
|
Идентификатор организации в Blitz Identity Provider |
|
Выбранная роль при входе через ЕСИА:
|
|
ОГРН организации (по сведениям из учетной записи ЕСИА) |
|
ОГРН организации (по сведениям из учетной записи ЕСИА) |
|
ОГРН организации (по сведениям из учетной записи ЕСИА) |
|
ИНН организации (по сведениям из учетной записи ЕСИА). При аутентификации юридического лица с помощью электронной подписи ИНН организации передается в формате |
Совет
Blitz Identity Provider также позволяет поместить элементы дизайна приложения на страницу входа Blitz Identity Provider. При желании создать для подключаемой системы персонифицированную страницу входа нужно адаптировать шаблон оформления страницы входа под дизайн подключаемой системы. Шаблон оформления страницы входа представляет собой zip-архив, внутри которого записаны HTML каркаса страницы входа и используемые на странице таблица стилей, изображения, JavaScript обработчики.
Подготовленный архив темы страницы входа нужно загрузить в Blitz Identity Provider.