Перейти к основному содержанию
Ctrl+K
документация Blitz Identity Provider 5.28 - Home документация Blitz Identity Provider 5.28 - Home
  • Спецификация
  • Обновление
  • Администрирование
  • Интеграция
  • Использование
  • Модули
    • Скачать PDF
    • История изменений
    • Скачать дистрибутив
    • Демо-версия
    • Клиентам
  • identityblitz.ru
  • English
  • Спецификация
  • Обновление
  • Администрирование
  • Интеграция
  • Использование
  • Модули
  • Скачать PDF
  • История изменений
  • Скачать дистрибутив
  • Демо-версия
  • Клиентам
  • identityblitz.ru
  • English

В этом разделе

Подготовка к интеграции

  • Выбор протокола взаимодействия

Интеграция приложения по OIDC

  • Как правильно зарегистрировать приложение
  • Подключение веб-приложения
  • Подключение мобильного приложения
  • Подключение приложений умных устройств (IoT)
  • Получение атрибутов пользователя
  • Обеспечение безопасности подключения

Интеграция приложения по SAML

  • Как правильно зарегистрировать приложение
  • Подключение приложения по SAML

API управления пользователями

  • Общие сведения
  • Учетные записи
    • Регистрация
    • Поиск
    • Атрибуты
    • Пароли
    • Режимы аутентификации
    • Свойства пользователя
    • TOTP
    • Состояние учетной записи
    • Внешние поставщики
    • События аудита
    • Известные устройства и сессии
    • Контрольные вопросы
    • Выданные пользователем разрешения
    • Мобильные приложения
    • Удаление учетной записи
  • Группы пользователей
  • Права доступа

Расширенные возможности

  • Дополнительный метод аутентификации
  • Вызов вспомогательных приложений в момент входа
  • Вызов приложения выдачи согласия
  • API администрирования
  • Вызов стороннего приложения регистрации пользователей
  • API аутентификации
  • Интеграция
  • Вызов приложения выдачи согласия

Вызов приложения выдачи согласия#

В Blitz Identity Provider предусмотрена возможность интеграции с внешними приложениями для отображения кастомизированного экрана согласия. Это позволяет гибко настраивать процесс получения согласий от пользователей, а также расширять функциональность стандартного механизма.

Основные возможности:

  • Кастомизация интерфейса - добавление графических элементов, изменение текста и дизайна экрана согласия.

  • Гибкая логика - возможность изменять логику выдачи согласий в зависимости от требований приложения или пользователя.

  • Дополнительные операции - выполнение дополнительных действий, таких как изменение атрибутов пользователя или запрос дополнительных данных.

Принцип работы:

  1. Вместо стандартного экрана согласия Blitz Identity Provider перенаправляет пользователя во внешнее приложение.

  2. Пользователь взаимодействует с внешним приложением, где выдает необходимые согласия (scope) и, при необходимости, предоставляет дополнительные данные (claim).

  3. После завершения взаимодействия пользователь возвращается в Blitz Identity Provider.

  4. Blitz Identity Provider получает от внешнего приложения информацию о выданных согласиях, сохраняет их и завершает процесс аутентификации.

Примечание

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

Вызов внешнего приложения#

При необходимости вызвать внешнее приложение Blitz Identity Provider будет делать POST-запрос на URL данного приложения. Приложение должно быть запущено на том же домене, что и Blitz Identity Provider.

Пример запроса#
POST https://login.company.com/consent HTTP/1.1
Content-Type: application/json
Authorization: Basic dG…dk
Пример ответа#
{
 "id": "a9692091-4613-41aa-91d2-9a71a3fc2e07",
 "claims": {"sub":"iivanov","family_name":"Иванов"},
     "requiredScopes": ["openid","profile"]
     "optionalScopes": ["blitz_api_user"]
 "rpId": "test_app",
 "sessionId": "4502aa51-f28c-4a64-951c-5ab1e77b1294"
}

Запрос содержит заголовок с Basic-авторизацией. Описание параметров:

  • id – идентификатор запроса в формате GUID;

  • sessionId – идентификатор созданной сессии в формате GUID;

  • rpId – идентификатор приложения, инициировавшего запрос в Blitz Identity Provider;

  • requiredScopes – перечень согласий (scope), которые обязательно требуются приложением (rpId);

  • optionalScopes – перечень согласий (scope), которые запрашиваются приложением (rpId), но не обязательны;

  • claims – утверждения Blitz Identity Provider, характеризующие пользователя;

  • request – данные о запросе.

Ответ от внешнего приложения с редиректом#

Внешнее приложение должно поставить cookie безопасности с идентификатором сессии на общий с Blitz Identity Provider домен. Также в ответе оно должно указать location для перенаправления в свой интерфейс. Название cookie безопасности должно быть Cac.

Пример ответа#
HTTP/1.1 302 Found
Location:https://login.company.com/consent/begin?id=a9692091-4613-41aa-91d2-9a71a3fc2e07
Set-Cookie:Cac=YTk2OTIwOTEtNDYxMy00MWFhLTkxZDItOWE3MWEzZmMyZTA3; Domain=mos.ru; Secure; HttpOnly

Ответ от внешнего приложения без редиректа#

Если внешнее приложение, получив запрос от Blitz Identity Provider, принимает решение сразу вернуть ответ с перечнем разрешенных согласий (без необходимости отображать веб-интерфейс), то оно может сразу вернуть ответ со статусом HTTP 200 и json со следующими параметрами:

  • id – идентификатор запроса, берется из исходного запроса;

  • grantedScopes – перечень согласий (scope), на которые дал согласие пользователь;

  • status – статус выдачи согласий, в случае успеха принимает значение “granted”.

Пример ответа#
{
   "grantedScopes":[
      "openid",
      "profile"
   ],
   "status":"granted",
   "id":"3e7b-396ae977-4509-a689-bc641e3311b6"
}

Возврат в Blitz Identity Provider из внешнего приложения#

После того, как внешнее приложение сделало все операции, оно должно вернуть пользователя в Blitz Identity Provider и передать перечень выданных пользователей согласий (scope). Для этого оно должно выполнить запрос методом POST на URL Blitz Identity Provider.

Пример запроса в случае успеха#
POST https://login.company.com/sps/oauth/consent/save HTTP/1.1
Content-Type: application/json

{
  "id": "a9692091-4613-41aa-91d2-9a71a3fc2e07",
  "extSessionId": "YTk2OTIwOTEtNDYxMy00MWFhLTkxZDItOWE3MWEzZmMyZTA3",
  "grantedScopes": ["openid","profile"],
  "status": "granted",
  "additionalClaims": {"bio_constent":"true"},
  "sessionId": "4502aa51-f28c-4a64-951c-5ab1e77b1294",
}

Параметры запроса:

  • id и sessionId – значения из исходного запроса;

  • extSessionId – значение cookie безопасности;

  • grantedScopes – перечень согласий (scope), на которые дал согласие пользователь

  • dismissedScopes – перечень согласий (scope), на которые пользователь не дал согласие;

  • additionalClaims – утверждения (claim) о пользователе, которыми нужно обогатить сессию;

  • status – статус выдачи согласий. Возможны варианты:

    • granted – согласия (scope) выданы;

    • dismissed – хотя бы одно обязательное согласие (scope) не выдано;

    • error – ошибка при выдаче согласий.

Пример запроса для случая, если обязательное согласие (scope) не выдано#
POST https://login.company.com/sps/oauth/consent/save HTTP/1.1
Content-Type: application/json

{
   "id": "a9692091-4613-41aa-91d2-9a71a3fc2e07",
   "extSessionId": "YTk2OTIwOTEtNDYxMy00MWFhLTkxZDItOWE3MWEzZmMyZTA3",
   "dismissedScopes": ["profile","blitz_api_user"],
   "status": "dismissed",
   "sessionId": "4502aa51-f28c-4a64-951c-5ab1e77b1294",
}
Пример запроса при ошибке, возникшей во внешнем приложении#
POST https://login.company.com/sps/oauth/consent/save HTTP/1.1
Content-Type: application/json

{
  "id": "a9692091-4613-41aa-91d2-9a71a3fc2e07",
  "extSessionId": "YTk2OTIwOTEtNDYxMy00MWFhLTkxZDItOWE3MWEzZmMyZTA3",
  "status": "error",
  "error_code":"user_not_found",
  "еrror_message":"User not found",
  "sessionId": "4502aa51-f28c-4a64-951c-5ab1e77b1294",
}

В случае успешного сохранения результатов обработки согласий Blitz Identity Provider вернет ответ со статусом HTTP 204 OK. В этом случае внешнее приложение должно выполнить редирект браузера пользователя в Blitz Identity Provider по определенному адресу.

Пример#
https://login.company.com/sps/oauth/consent/callback

Для настройки параметров экрана согласия в конфигурационном файле обратитесь к разделу Экран согласий.

назад

Вызов вспомогательных приложений в момент входа

вперёд

API администрирования

На этой странице
  • Вызов внешнего приложения
  • Ответ от внешнего приложения с редиректом
  • Ответ от внешнего приложения без редиректа
  • Возврат в Blitz Identity Provider из внешнего приложения

Identity Blitz © 2025

Последнее обновление 05.05.2025