Единый вход с использованием JWT

Единый вход — это механизм, который позволяет вам аутентифицировать пользователей в ваших системах и впоследствии сообщать HelpDeskEddy, что пользователь прошел аутентификацию. 

Если вы используете единый вход с помощью JSON Web Token (JWT), пользователь автоматически проверяется у поставщика удостоверений при входе в систему. Затем пользователю разрешается доступ к HelpDeskEddy без запроса на ввод отдельных учетных данных для входа.
 
В этой статье описывается, как включить несколько конфигураций единого входа JWT, которые можно использовать для аутентификации пользователей. 
В основе единого входа лежит механизм безопасности, который позволяет HelpDeskEddy доверять запросам на вход, которые он получает от ваших систем. HelpDeskEddy предоставляет доступ только тем пользователям, которые прошли вашу аутентификацию. HDE SSO использует JWT для защиты обмена данными аутентификации пользователей.

 

 

Как работает единый вход JWT для HelpDeskEddy

 

После включения единого входа запросы на вход перенаправляются на страницу входа, внешнюю по отношению к HelpDeskEddy.

 

Шаги процесса аутентификации JWT SSO:
  1. Не аутентифицированный пользователь переходит по URL-адресу вашей службы поддержки HelpDeskEddy. 
    Пример: https://вашподдомен.helpdeskeddy.com/.
  2. Система аутентификации создает запрос JWT, содержащий соответствующие данные пользователя.
  3. Система аутентификации перенаправляет пользователя на конечную точку HelpDeskEddy с полезной нагрузкой JWT. 
  4. HelpDeskEddy анализирует предоставленные данные пользователя из JWT а затем предоставляет пользователю сеанс.

 

Как видите, этот процесс основан на перенаправлении браузера и передаче подписанных сообщений с использованием JWT. 
Перенаправления происходят исключительно в браузере, и между HDE и вашими системами нет прямого соединения, поэтому вы можете безопасно хранить свои сценарии аутентификации за корпоративным брандмауэром.

 

Требования для включения единого входа JWT

 

Для начала свяжитесь с командой вашей компании, ответственной за систему аутентификации JWT (обычно с ИТ-отделом), чтобы убедиться, что трафик, связанный с HelpDeskEddy, передается по протоколу HTTPS, а не HTTP.

 

Для настройки метода единого входа JWT в HelpDeskEddy вам понадобится следующая информация:
  • (Необязательно) URL-адрес удаленного входа, на который должны быть перенаправлены пользователи HDE при попытке доступа к системе.
  • (Необязательно) URL-адрес удаленного выхода, по которому HelpDeskEddy может перенаправлять пользователей после выхода из системы.
  • (Необязательно) Список диапазонов IP-адресов для перенаправления пользователей к соответствующему варианту входа. 

 

Вашей IT-команде может потребоваться дополнительная информация для настройки реализации JWT, она доступна ниже в
 таблице технической реализации в этой статье. Подтвердив, что вы соответствуете требованиям и располагаете всей необходимой информацией, вы готовы включить JWT SSO.

 

Включение единого входа JWT

 

1) В меню "Безопасность/Авторизация" нажмите перейдите во вкладку "Единый вход в систему (SSO)" и нажмите кнопку "Добавить SSO соединение -> JSON Web Token":

 

2) Введите уникальное название соединения.

 

3) В разделе "Настройки ldP" активируйте "Логин на стартовой странице", чтобы добавить кнопку входа с помощь JWT на страницу входа в HelpDeskEddy.

 

В поле URL-адрес удаленного входа введите URL-адрес, на который будут перенаправляться пользователи при попытке получить доступ к URL-адресу HelpDeskEddy.

 

4) (Необязательно) Для URL-адреса удаленного выхода — URL-адрес выхода, на который пользователи должны быть перенаправлены после выхода из HelpDeskEddy.

 

HelpDeskEddy автоматически добавляет параметры email (в случае логаута, будет указан email аккаунта), kind (тип, например info/error) и message (пояснение) в URL-адрес выхода из системы. 
 
Пример ошибки при неудачной авторизации: https://yourdomain.helpdeskeddy.com/jwtLogout.html?kind=error&message=One+or+more+required+attributes+are+missing

 

Пример:

 

5) (Необязательно) Для каждой группы пользователей есть поддержка IP-диапазонов (whitelist). Доступны они в меню "Группы, права доступа" в настройках каждой группы во вкладке "Расширенные настройки":

 

6) Предоставьте общий секрет из раздела "Настройки SP" своей ИТ-команде. Он понадобится им для реализации JWT.

 


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

 

7) Нажмите "Сохранить".

 

Управление пользователями в HelpDeskEddy после включения JWT SSO

 

После включения единого входа JWT в HelpDeskEddy изменения, внесенные пользователями за пределами HDE, синхронизируются с вашей системой HelpDeskEddy в момент авторизации пользователя с помощью JWT.
 
Если пользователь будет удален в вашей внутренней системе, то он будет создан заново при попытке новой авторизации. Чтобы запретить вход в HelpDeskEddy поменяйте статус контакта на "заблокирован". По умолчанию единственные данные пользователя, хранящиеся в HelpDeskEddy при включенном едином входе, — это имя пользователя и адрес электронной почты.
 
 

Создание нового общего секрета

 

В некоторых случаях, например, если ваш секрет скомпрометирован, вам может потребоваться выдать новый общий секрет JWT и предоставить его своей ИТ-отделу или внешнему поставщику удостоверений. Вы можете создать новый общий секрет JWT в меню "Безопасность/Авторизация" в редактировании вашего SSO соединения. Это действие создаст новый секрет и аннулирует старый. Чтобы аутентификация учетной записи HelpDeskEddy SSO работала, вам необходимо сообщить своему ИТ-специалисту или внешнему поставщику идентификационной информации о вашем новом общем секрете.

 


Важно: После обновления секрета пользователи не могут пройти аутентификацию с помощью JWT SSO, пока не будет установлен новый секрет на стороне IT-команды! На это время убедитесь, что у ваших пользователей есть резервный метод аутентификации.



Чтобы создать новый общий секрет:

1) В меню "Безопасность/Авторизация" перейдите в во вкладку "Единый вход в систему (SSO) и отредактируйте настройки своего SSO соединения из списка:


2) Наведите указатель мыши на кнопку напротив поля "Общий секрет" в меню "Настройки SP":


3) Появится подтверждающее сообщение, нажмите «Сбросить общий секрет», чтобы подтвердить сброс.
 

4) Сделайте копию нового общего секрета и передайте его своему ИТ-отделу или внешнему поставщику удостоверений.
Сохраните изменения.

 

Дополнительная информация о JWT

 

JWT — это открытый стандарт, который поддерживается международным органом по стандартизации 
IETF и и имеет поддержку на высшем уровне со стороны технологического сектора (например, Microsoft, Facebook и Google).

 

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

Помните, что полезная нагрузка JWT просто кодируется и подписывается, а не шифруется, поэтому не следует помещать в хэш-таблицу конфиденциальные данные. JWT работает путем сериализации передаваемого JSON в строку. Эта строка кодируется в Base64, а затем JWT создает HMAC из строки Base64, которая зависит от общего секрета. В результате получается подпись, которую сторона-получатель может использовать для проверки пользователя.

 

Параметры ссылки входа

 

  • jwt - Обязательный, токен.
  • return_to - Не обязательный. Параметр содержит страницу, которую вернет пользователю после успешной аутентификации.

 

Атрибуты JWT

 

Обязательные атрибуты:

 

Дополнительные атрибуты пользователя:

 

Режим отладки

 

При активации режима отладки в лог при авторизации будут записаны передаваемые атрибуты. 

Может послужить помощником при настройке новых подключений, отображая какая именно информация поступает в HDE.

Пример:

 

Активируется по кнопке "Режим отладки" при редактировании SSO соединения в HDE:

+