Identity Cloud : 6.4. Отладка приложений

Identity Cloud : 6.4. Отладка приложений

Общие сведения

Журнал отладки приложений представляет собой специализированную функциональность, предназначенную для сбора, фиксации и анализа технических данных о процессе функционирования подключенных приложений в инфраструктуре Avanpost Identity Cloud. Основной задачей журнала является регистрация событий аутентификации, возникающих при попытках доступа пользователей к приложениям, находящимся в режиме отладки. Механизмы журнала отладки позволяют детально отслеживать прохождение сценариев аутентификации, фиксировать параметры запросов и ответов, а также оперативно выявлять причины ошибок интеграции или сбоев в работе компонентов системы.

Журнал отладки приложений выполняет следующие функции:

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

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

Управление журналом отладки

Режим отладки предназначен для сбора и анализа данных о работе приложения. Перейти в Журнал отладки приложения можно следующими способами:

  • В профиле приложения. Включить режим отладки (в выпадающем списке, открывающемся после нажатия кнопки "Еще", выбрать "Включить режим отладки"). При включении режима отладки в профиле приложения появится вкладка "Журнал отладки" (после выключения режима отладки журнал будет скрыт). При этом в профиле приложения выводится журнал отладки данного приложения. 
  • Во вкладке "Журнал отладки приложений" режима "Отчеты". В данном случае пользователю открывается журнал отладка по всем приложениям. 

Журнал отладки приложений содержит следующие элементы интерфейса:

  • Реестр сообщений отладки;
  • Выпадающий список "Экспорт" – Нажать и выбрать формат выгружаемого файла (XLSX или CSV) для выгрузки Журнала отладки;
  • Кнопка  – Нажать для обновления записей в Журнале отладки приложений;
  • Кнопка "Очистить журнал" – Нажать для очистки Журнала отладки (после подтверждения);
  • Кнопка "Фильтр" – При нажатии открывается интерфейс поиска записей отладки приложения;

В таблице записей отображаются следующие данные.

Название параметраЗначение параметра
ДатаДата и время создания записи.
ПриложенияНазвание приложения, к которому относится запись и графическое обозначение типа приложения.
Тип приложенияСпособ интеграции приложения, к которому относится запись, с Avanpost Identity Cloud. 
СообщениеИнформационные сообщения о завершении того или иного события по мере прохождения сценария аутентификации.
Данные

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

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

При нажатии на кнопку "Фильтр" открывается интерфейс, предоставляющий возможности поиска записей в Журнале отладки по следующим параметрам:

ПараметрЗначение
Приложения

Название искомого приложения из выпадающего списка. При выборе опции "Все приложения" предоставляются данные по всем приложениям.

Возможность фильтрации по наименованиям приложений доступна для общего журнала отладки ("Сервис" - "Журнал отладки приложений"). В журнале отладки, доступном в профиле конкретного приложения, собирается информация только по данному приложению, и фильтр по приложениям недоступен.

ПрименитьТекст, который содержится в сообщении искомых событий.
Начало Нижняя граница временного диапазона, в котором произошли искомые события.
КонецВерхняя граница временного диапазона, в котором произошли искомые события.
Поля

Параметры (выбираются из выпадающего списка) и их значения (вводятся в текстовое поле), по которым выполняется поиск события. Чтобы добавить еще одно поле, нажать кнопку "Добавить поле". Каждый параметр может использован быть лишь однократно.  На кнопке указана дробь, отображающая количество использованных и сумманое количество имеющихся параметров. Чтобы удалить параметр, нажать кнопку .

Для запуска поиска следует нажать "Применить", для удаления введенных значений от поиска нажать "Сбросить".

Спецификация сообщений отладки приложений

Различным типам приложения свойственны различные сообщения с разными наборами данных, представленные в таблице.

Тип приложенияСообщениеДанные
OpenID

Authorization endpoint has been called - Запрошен endpoint авторизации. 

Endpoint авторизации (Authorization endpoint) используется для аутентификации и авторизации и возвращает клиенту разрешение на авторизацию при аутентификации посредством Authorization Code Flow (обмен кода авторизации на Access token).


В зависимости от типа события в режиме отладки можно получить информацию о каких-либо из следующих параметров:

  • id_token_hint - параметр используется, чтобы убедиться, что личность пользователя совпадает с теми данными, которые находятся в токене идентификации, представленном id_token_hint;
  • authorization - код авторизации (значение скрыто из-за политики конфиденциальности);
  • scope - области действия (scopes) приложения, определяющие доступ приложения к данным пользователя ;
  • response_type - параметр, сообщающий серверу авторизации, какой грант выполнить;
  • client_id - идентификатор приложения, запрашивающего авторизацию.
  • redirect_uri - URL-адрес перенаправления после успешной аутентификации;
  • state - параметр, используемый в целях безопасности: если этот параметр установлен в запросе, он возвращается приложению как часть redirect_uri;
  • responce_mode - необязательный параметр, формирующийся в результате запроса авторизации;
  • nonce - значение, используемое для привязки клиентского сеанса к ID Token для предотвращения атак повторного воспроизведения;
  • display - необязательный параметр, указывающий как сервер авторизации отображает конечному пользователю страницы интерфейса аутентификации и согласия на доступ к данным пользователя;
  • prompt - необязательный параметр, который определяет, запрашивает ли сервер авторизации конечного пользователя повторную аутентификацию и согласие на доступ к данным пользователя;
  • max_age - параметр, показывающий максимально допустимое время в секундах, прошедшее с момента последней аутентификации конечного пользователя при помощи OpenID-провайдера;
  • ui_locales - необязательный параметр, указывающий предпочтительные языки пользовательского интерфейса и представленный в виде разделенного пробелами списка значений языковых тегов;
  • login_hint - параметр, являющийся подсказкой для центра идентификации, может использоваться в качестве логина, если пользователь зарегистрирован под таким логином в DSS;
  • acr_values - параметр, ссылающийся на класс контекста аутентификации, чтобы определить набор требований к уровню доверия, которые защищенный ресурс требует от события аутентификации, связанного с Access token и ID token;
  • grant_type - параметр, указывающий какой тип grant type использовался в процессе аутентификации;
  • code - код, используемый при запросе endpoint токена; 
  • username - логин пользователя;
  • password - пароль (значение скрыто из-за политики конфиденциальности);
  • access_token - значение Access token (токен доступа); 
  • refresh_token - значение Refresh token;
  • client_secret - секрет клиента (значение скрыто из-за политики конфиденциальности);
  • iss - идентификатор отправителя ответа (URL-адрес);
  • target_link_uri - URL-адрес, на который клиентское приложение OAuth 2.0 Relying Party (RP), запрашивает перенаправление после аутентификации;
  • request - необязательный параметр, позволяет передавать запросы OIDC одним автономным параметром, дополнительно подписывая и/или шифруя их;
  • claims - необходимые утверждения (claims), запрашиваемые областями действия (scopes);
  • registration - необязательный параметр, используется клиентом для предоставления информации о себе Self-Issued OpenID-провайдеру, который обычно предоставляется OpenID-провайдеру при динамической регистрации (OpenID Connect Dynamic Client Registration).
  • code_challenge - вычисляется путем применения code_challenge_method (логики вычислений) к code_verifier.
  • code_challenge_method - метод (алгоритм) вычисления;
  • code_verifier - случайная строка, которая создается пользователем при начале процесса авторизации;
  • error - наименование ошибки аутентификации;
  • error_description - описание ошибки аутентификации;
  • error_hint - подсказка о причине ошибки аутентификации;
  • jwt_claims - утверждения (claims), которыми должен обладать JSON Web Token;
  • result - результат произошедшего события аутентификации.

Token endpoint has been called - Запрошен endpoint токена

Endpoint токена (Token endpoint) используется для запроса токенов посредством отправки запроса Authorization Grant к endpoint'у токена. 


UserInfo endpoint has been called - Запрошен endpoint пользовательской информации.

Endpoint пользовательской информации (UserInfo endpoint) представляет собой защищенный ресурс OAuth 2.0, возвращающий утверждения (claims) об аутентифицированном конечном пользователе.


Endsession endpoint has been called - Запрошен endpoint завершения сессии

Endpoint завершения сессии (Endsession endpoint) используется для централизованного завершения сеансов приложений (Single Logout).


SAML

Received AuthN request - Осуществление запроса Received AuthN request (логирование запроса происходит после завершения процесса аутентификации)

Запрос AuthnRequest направляется  от SP (Service Provider) к IdP (Identity provider) для прохождения пользователем аутентификации с использованием механизма SSO. 


В зависимости от типа события в режиме отладки можно получить информацию о каких-либо из следующих параметров:

  • XML - поле, при нажатии на которое запрос/ответ SAML будет скопирован в буфер обмена;
  • ID - сгенерированный идентификатор;
  • AssertionConsumerServiceURL - необязательный параметр, представляющий собой URL-адрес SP, на который IdP будет направлять утверждение (Assertion), т.е. XML Security Token;
  • Issuer - параметр, идентифицирующий приложение клиента для IdP;
  • Destination - адрес для отправки ответа SAML, определенный в утверждении (Assertion);
  • IssueInstant - строка DateTime со значением в формате всемирного времени (SP может пользоваться более строгими правилами проверку достоверности Assertion, требуя, чтобы значение атрибута IssueInstant не выходило за пределы заданного временного интервала с момента получения Assertion от SP);
  • ProtocolBinding - параметр, указывающий методы запроса, поддерживаемые для сообщений SAML (HTTP Redirect, HTTP POST, HTTP Artifact и SOAP);
  • Version - версия SAML;
  • AssertionSubject - пользователь, проходящий аутентификацию посредством отправки Assertion;
  • AssertionSubjectFormat - формат передачи формата идентификатора имени;
  • InResponseTo - идентификатор запроса SAML, на который отправлен данный ответ;
  • SAMLP - формат используемого протокола;
  • SAML - формат передающегося утверждения (Assertion); 
  • Status - параметр, указывающий был ли запрос от SP к IdP успешным;
  • error - наименование ошибки аутентификации;
  • error_description - описание ошибки аутентификации;
  • error_hint - подсказка о причине ошибки аутентификации;
  • result - результат произошедшего события аутентификации.

AuthN response - Полученный ответ AuthN response

Ответ AuthN response направляется от IdP (Identity provider) к SP (Service Provider) при успешном прохождении пользователем процесса аутентификации и содержит NameID и атрибутами пользователя.


Received Logout request - Осуществление запроса Received Logout request

Logout request - запрос на одновременное завершение несколько сеансов работы в приложениях посредством выполнения единого выхода из системы (SLO).


Logout response - Полученный ответ Logout response

Logout response - ответ на Запрос Logout request на осуществление единого выхода, который может отправить как Service Provider, так Idp.


RADIUS

Received RADIUS request - RADIUS-пакет отправлен/получен.

Описание каждого RADIUS-пакета состоит из описания атрибутов (Attribute) и их значений (Value Pair) для данного типа пакета. Атрибуты могут быть как стандартными, так и специфичными атрибутами вендоров VSA (Vendor-Specific Attribute).


В зависимости от типа события в режиме отладки можно получить информацию о каких-либо из следующих параметров:

  • nas_identifier - RADIUS-атрибут, используемый для идентификации клиента;
  • nas_ip_address - IP-адрес, используемый в качестве идентификатора клиента;
  • remote_address - IP-адрес удаленного RADIUS-сервера;
  • username - логин пользователя;
  • passcode - пароль (значение скрыто из-за политики конфиденциальности);
  • response.code - тип пакета, отправляемый RADIUS-серверу или получаемый от RADIUS-сервера;
  • response.attributes - атрибуты, направляемые в ответе от RADIUS-сервера;
  • attributes - атрибуты, направляемые в пакете RADIUS-серверу;
  • error - наименование ошибки аутентификации;
  • error_description - описание ошибки аутентификации;
  • error_hint - подсказка о причине ошибки аутентификации;
  • result - результат произошедшего события аутентификации.
gRPC (Windows Logon, Linux Logon, Enteprise SSO, LDAP Proxy, Exchane ActiveSync)Received ‘Authenticate’ request - Получен запрос на аутентификацию.

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

  • factors - факторы аутентификации, использовавшиеся в запросе;factorsDisplayNames - ;
  • metadata - тип данных, передаваемых в запросе/ответе
  • sessionID - уникальный идентификатор сессии;
  • state - системный атрибут, позволяющий клиенту отслеживать, что ответ приходит именно на тот запрос, который был послан;
  • status - параметр, сообщающий о результате аутентификации;
  • userID - уникальный идентификатор пользователя;
  • applicationID - наименование приложения, в котором проходила аутентификация;
  • passcode - пароль (значение скрыто из-за политики конфиденциальности);
  • username - логин;
  • error - наименование ошибки аутентификации;
  • error_description - описание ошибки аутентификации;
  • error_hint - подсказка о причине ошибки аутентификации;
  • result - результат произошедшего события аутентификации.
Sent ‘Authenticate’ request - Отравлен запрос на аутентификацию.
Received ‘Authenticate’ response - Получен ответ на запрос аутентификации.
Sent ‘Authenticate’ response - Отправлен ответ на запрос аутентификации.



Обсуждение