Настройка OAuth 2.0 и OpenID Connect 1.0#
Настройка приложения#
При подключении приложения по OAuth 2.0 или OpenID Connect 1.0 (OIDC) в блоке Настройки взаимодействия с приложением задайте следующие настройки взаимодействия с приложением:
укажите секретный ключ (или использовать сгенерированный по умолчанию ключ) подключаемого приложения (
client_secret), который должен использоваться подключенным приложением при обращении к Blitz Identity Provider (если не указан, то аутентификация приложения-клиента должна производиться иначе, например, с использованием proxy TLS);укажите дополнительный секретный ключ (
client_secret) подключаемого приложения. Рекомендуется для случаев, когда нужно обеспечить плавную сменуclient_secretдля данного приложения;укажите предопределенную ссылку возврата (
redirect_uri) – URL, на который по умолчанию будет переадресован пользователь после прохождения авторизации (redirect_uri);укажите допустимые префиксы ссылок возврата – префикс используется для проверки ссылок возврата (
redirect_uri), переданных в запросах на идентификацию от приложений. Если в запросе на аутентификацию указана ссылка возврата и она не соответствует ни одному из указанных префиксов, то в аутентификации будет отказано;укажите допустимые разрешения – разрешения (
scope), которые имеет право запрашивать данное приложение;
Примечание
Blitz Identity Provider можно настроить таким образом, что будут сохраняться маркеры доступа пользователя от внешних поставщиков идентификации. Если приложение будет получать по REST API сохраненные маркеры доступа, для него необходимо выбрать системные разрешения
fed_tkn_any(все внешние поставщики) иfed_tkn_${fedPointType}_${fedPointName}(внешний поставщик с типом${fedPointType}и именем${fedPointName}). Данные разрешения должны быть предварительно заведены в общих настройках протокола в разделе OAuth консоли.укажите разрешения по умолчанию – разрешения (
scope), которые будут по умолчанию выданы приложению после аутентификации. Если не указаны, то в запросе на аутентификацию всегда должны быть явно прописаны требуемые разрешения;при необходимости задайте отображение экрана согласия на доступ к данным о себе. Если выбрано
отображатьэкран согласия, то при первом входе пользователя в систему будет отображена страница согласия на предоставление данных этой системе. Если выбраноне отображатьэкран согласия, то при первом входе пользователя в систему не будет отображена страница согласия на предоставление данных этой системе. Если выбрана настройкапо умолчанию, тогда берется глобальная настройка. Также имеется возможность использовать внешнее приложение для отображения экрана согласия.отметьте при необходимости опцию
Обязательное использование Proof Key for Code Exchange (RFC 7636) для Authorization code grant type, если запросы на аутентификацию должны валидироваться согласно RFC 7636;выберите при необходимости метод аутентификации при обращении к сервису выдачи маркеров. Указанные методы аутентификации должны использоваться при обращении к сервису выдачи маркеров (
token endpoint). При пустом значении доступны все методы. Также существует метод аутентификацииnone. Он применяется для динамических клиентов, таких как мобильные приложения, которые не используют параметрclient_secretдля аутентификации. Данный метод не предназначен для веб-приложений, где возможно безопасное хранениеclient_secret. Использование методаnoneрегламентируется спецификацией RFC 7591;выберите при необходимости допустимые
grant type. Параметр определяет списокgrant type, которые будут доступны приложению. При пустом списке доступны всеgrant type;выберите при необходимости допустимые
response type. Параметр определяет списокresponse type, которые будут доступны приложению при обращении к URL авторизации (authorization endpoint). При пустом списке доступны всеresponse type;
выберите формат маркера доступа – можно выбрать
opaqueилиJWT. Если параметр не задан, то берется из общих настроек из разделаOAuth 2.0.укажите время жизни маркера доступа (в секундах). Если параметр не задан, то берется из общих настроек из раздела
OAuth 2.0;отметьте при необходимости опцию
Добавлять в маркер доступа параметр rights с правами пользователя на данное приложение, чтобы регулировать необходимость включать в токен сведения о правах пользователя.укажите
Добавляемые в маркер доступа утверждения. Дополнительные утверждения (claim), добавляемые в маркер доступа в формате JWT. Атрибуты будут добавлены, только если они разрешены вscopeданного маркера. Если дополнительные утверждения не заданы, маркер будет содержать только стандартные поля JWT (например,sub,iss,exp);укажите
Дополнительные адресаты (aud) маркера доступа. Для этого укажитеclient_idприложений, которые должны быть добавлены в адресаты (aud) маркера доступа;
Примечание
Набор разрешений (
scope), включаемых в маркер доступа, определяется только разрешениями приложения, для которого выполняется выдача маркера. Дополнительные адресаты (aud) маркера доступа не участвуют в формировании списка разрешений.отметьте при необходимости опцию
Выдавать маркер обновления.укажите время жизни маркера обновления (в секундах). Если параметр не задан, то берется из общих настроек из раздела
OAuth 2.0;указать время жизни сцепки маркеров обновления (в секундах). Если параметр не задан, то берется из общих настроек из раздела
OAuth 2 .0;указать количество использования маркера обновления. Если параметр не задан, то берется из общих настроек из раздела
OAuth 2.0;отметьте при необходимости опцию
Добавлять в маркер идентификации параметр rights с правами пользователя на данное приложение, чтобы регулировать необходимость включать в токен сведения о правах пользователя.укажите
добавляемые в маркер идентификации (id_token) утверждения. Если приложение взаимодействует с Blitz Identity Provider по протоколу OIDC (OpenID Connect 1.0), то в качестве одного из разрешений (scope) необходимо также указатьopenid. Тогда в обмен на авторизационный код при вызовеToken Endpointбудут выданы не только маркер доступа (access token) и маркер обновления (refresh token), но и идентификационный маркер (id_token). В маркер идентификации будет включен идентификатор пользователяsub, а также дополнительные атрибуты, перечисленные в этой настройке. Возможно добавление как атрибутов, сконфигурированных в разделеИсточники данных, так и дополнительных атрибутов (подробнее см. oauth-attribute-marker);
При использовании в приложении функции логаута в блоке
Выход из приложениязадайте следующие настройки:
укажите префиксы ссылок возврата при выходе. Необходимо перечислить префиксы допустимых URL страниц перенаправления пользователя после инициирования приложением логаута. Допустимо задать один или несколько префиксов ссылок возврата;
введите предопределенную ссылку возврата при выходе – ссылку, на которую будет перенаправлен пользователь после логаута из приложения, если в параметрах вызова логаута от приложения не был передан адрес возврата
post_logout_redirect_uri;отметьте при необходимости опцию
Не показывать пользователю экран с подтверждением выхода из системы– если эту настройку не отметить, то пользователю будет показан экран с запросом подтверждения выхода из приложения;введите ссылку для очистки сессии пользователя в браузере (
Front channel) – указанный адрес обработчика приложения будет вызван из фрейма браузера в случае инициирования логаута пользователя;отметьте при необходимости опцию
Добавлять идентификатор сессии и эмитента в ссылку очистки сессии в браузере (Front channel)– в этом случае в браузерный обработчик логаута приложения будет передан идентификатор сессии (sid);введите ссылку для очистки сессии пользователя в приложении (
Back channel) – указанный адрес обработчика приложения будет вызван с сервера Blitz Identity Provider в случае инициирования логаута пользователя;отметьте при необходимости опцию
Добавлять идентификатор сессии и эмитента в ссылку очистки сессии в приложении (Back channel)– в этом случае на адрес обработчика приложения, вызванный с сервера Blitz Identity Provider в случае инициирования логаута пользователя, будет переданlogout_token, содержащий идентификатор сессии пользователя (sid).
При использовании приложением авторизации по спецификации Device Authorization Grant (например, для подключения IOT-устройств, смарт ТВ, чат ботов, приложений голосовых помощников) в блоке
Настройки взаимодействия с приложениемв параметреДопустимые response typeдобавьте вариантdevice code, а в параметреДопустимые grant typeдобавьте вариантurn:ietf:params:oauth:grant-type:device_code. Также в блокеDevice Authorization Grantзадайте следующие настройки:
формат пользовательского кода, для этого следует использовать регулярные выражения;
время жизни пользовательского кода;
ссылку на страницу ввода пользовательского кода;
отметьте при необходимости опцию
Добавлять в URL пользовательский код. В этом случае Blitz Identity Provider при авторизации будет возвращать не только ссылку на станицу ввода пользовательского кода (например,https://test.ru/device), но еще и ссылку с кодом в качестве параметра (например,https://test.ru/device?uc=676-267-324).
Настройка динамической регистрации клиентов#
Чтобы включить возможность динамической регистрации клиентов:
Настройте для этого приложения протокол подключения OAuth 2.0 согласно документации (см. Общие настройки OAuth 2.0).
В настройках OAuth 2.0 для данного приложения перейдите на закладку
Динамические клиенты.
Укажите базовые настройки динамической регистрации клиентов:
разрешите динамическую регистрацию клиентов, переведя ползунок в правое положение;
при необходимости добавьте дополнительные утверждения к прямой передаче. Эти утверждения допускается указывать в запросе на регистрацию экземпляра приложения. В случае их наличия в метаданных приложения (
software_statement), приоритет будет отдан значению из метаданных. Рекомендуется разрешить передачу только типа устройства (device_type).
Сгенерируйте метаданные приложения (
software_statement). Эти метаданные передаются в качестве утверждения в запросе на регистрацию экземпляра приложения. В качестве атрибутов метаданных можно указать:
версию приложения (обязательный атрибут). Версия приложения должна соответствовать версии первичного маркера, используемого приложением;
префиксы ссылок возврата. Префикс используется для проверки ссылок возврата (
redirect_uri). Если в запросе на аутентификацию указана ссылка возврата и она не соответствует ни одному из указанных префиксов, то в аутентификации будет отказано;допустимые разрешения – разрешения (
scope), которые будут доступны приложению;метод аутентификации при обращении к сервису выдачи маркеров. Указанный метод аутентификации должен использоваться инстансом приложения при обращении к сервису выдачи маркеров (
token endpoint);допустимые значения
grant type. Списокgrant type, которые будут доступны экземпляру приложения;допустимые значения
response type. Списокresponse type, которые будут доступны экземпляру приложения при обращении к URL авторизации (authorization endpoint).
Примечание
Следует учесть, что указанные атрибуты метаданных должны соответствовать параметрам OAuth 2.0, определенным для приложения (
Статический клиент).Примечание
После подписания метаданных приложения их вместе с первичными маркерами следует передать разработчикам подключаемого приложения.
Создайте первичные маркеры для приложения. Первичные маркеры используются для авторизации инстансов приложения при их регистрации.