Аутентификация на основе JWT¶
Вы можете подключить Glarus BI к своему поставщику удостоверений, используя веб-токены JSON (JWT) для аутентификации людей.
Потоки аутентификации¶
Glarus BI поддерживает два потока аутентификации, которые могут быть использованы с JWT:
- Поток кода авторизации.
- Поток кода авторизации с PKCE.
PKCE расшифровывается как Proof-Key for Code Exchange, и это способ расширить поток кода авторизации для включения случайных ключей, сгенерированных по запросу. Для получения дополнительной информации об этих потоках см. статью Википедии об OAuth.
В настоящее время Glarus BI поддерживает только алгоритм HS256 (HMAC + SHA-256 ).
Типичный поток для взаимодействия единого входа на основе JWT с Glarus BI¶
Предполагая, что ваш сайт является локальным хостом, обслуживающим порт 3000:
- Человек пытается просмотреть запрос, например,
http://localhost:3000/question/1-superb-question
. - Если человек не вошёл в систему, Glarus BI перенаправляет его на
http://localhost:3000/auth/sso
. - Сохраняя исходный URI
/question/1-superb-question
, Glarus BI перенаправляет человека к поставщику SSO (приложению аутентификации). - Пользователь входит в систему, используя основную форму.
- В случае успешного входа ваше приложение аутентификации должно отправить запрос GET к вашей конечной точке Glarus BI с токеном и URI «возврата»:
http://localhost:3000/auth/sso?jwt= TOKEN_GOES_HERE&return_to=/question/1-superb-question
. - Glarus BI проверяет веб-токен JSON, регистрирует пользователя, а затем перенаправляет его к исходному пункту назначения,
/question/1-superb-question
.
Типичный поток для взаимодействия единого входа на основе JWT с Glarus BI¶
Предполагая, что ваш сайт является локальным хостом, обслуживающим порт 3000:
- Человек пытается просмотреть запрос, например,
http://localhost:3000/question/1-superb-question
. - Если человек не вошёл в систему, Glarus BI перенаправляет его на
http://localhost:3000/auth/sso
. - Сохраняя исходный URI
/question/1-superb-question
, Glarus BI перенаправляет человека к поставщику SSO (приложению аутентификации). - Пользователь входит в систему, используя основную форму.
- В случае успешного входа ваше приложение аутентификации должно отправить запрос GET к вашей конечной точке Glarus BI с токеном и URI «возврата»:
http://localhost:3000/auth/sso?jwt= TOKEN_GOES_HERE&return_to=/question/1-superb-question
. - Glarus BI проверяет веб-токен JSON, регистрирует пользователя, а затем перенаправляет его к исходному пункту назначения,
/question/1-superb-question
.
Включение аутентификации JWT¶
Перейдите в раздел Администрирование > Настройки области администрирования, затем нажмите на вкладку Аутентификация. Нажмите кнопку Настроить в разделе JWT на этой странице, и вы увидите эту форму:
Щёлкните переключатель в верхней части формы, чтобы включить аутентификацию на основе JWT. Обязательно установите переключатель в положение «Включено», иначе аутентификация JWT не будет работать, даже если все остальные параметры указаны правильно.
Вот разбивка каждой из настроек:
Поставщик удостоверений URI JWT: здесь Glarus BI будет перенаправлять запросы на вход. То есть это то место, где ваши пользователи входят в систему через вашего поставщика удостоверений.
Строка, используемая ключом подписи JWT: Строка, используемая для заполнения закрытого ключа, используемого для проверки сообщений JWT. И Glarus BI, и приложение аутентификации должны иметь один и тот же ключ подписи JWT.
Конфигурация атрибута пользователя (необязательно)¶
Это дополнительные настройки, которые вы можете заполнить для передачи пользовательских атрибутов в Glarus BI.
- Атрибут электронной почты: ключ для получения адреса электронной почты каждого пользователя JWT.
- Атрибут First Name: ключ для получения имени каждого пользователя JWT.
- Атрибут Last Name: если вы догадались, что это ключ для получения фамилии каждого пользователя JWT, значит, вы обратили на это внимание.
Вы можете отправить дополнительные пользовательские атрибуты в Glarus BI, добавив атрибуты в виде пар ключ/значение в свой JWT. Эти атрибуты будут синхронизироваться при каждом входе в систему.
Схема группы¶
Вы можете использовать JWT для назначения пользователей Glarus BI в настраиваемые группы, выполнив следующие действия:
- Добавьте это в свой JWT:
groups: ["group_name"]
- В панели администратора в Glarus BI перейдите на вкладку «Аутентификация» раздела «Настройки» и нажмите кнопку «Настроить» на JWT. На этом экране включите переключатель в разделе «СИНХРОНИЗИРОВАТЬ ЧЛЕНСТВО В ГРУППЕ».
- Затем нажмите «Редактировать сопоставления». В этом модальном окне введите имя одной из ваших групп, как определено в JWT, затем нажмите «Добавить». В появившейся строке щёлкните раскрывающийся список, чтобы выбрать группу Glarus BI, с которой она должна сопоставляться. Повторите это для каждой из групп, которые вы хотите отобразить.
Отключение входа по паролю¶
Предупреждение
Избегайте блокировки в Glarus BI! Эта настройка будет применяться ко всем учетным записям Glarus BI, включая вашу учётную запись администратора Glarus BI. Мы рекомендуем включить аутентификацию по паролю. Это защитит вас от блокировки Glarus BI в случае каких-либо проблем с SSO.
Чтобы потребовать от людей входа с помощью SSO, отключите аутентификацию по паролю в разделе Администрирование > Аутентификация.
Создание аккаунтов Glarus BI с SSO¶
Предупреждение
Лицензия ограничивает максимальное число учётных записей.
Каждый новый логин с использованием SSO автоматически создаёт новый аккаунт Glarus BI.
Учётные записи Glarus BI, созданные с использованием входа через внешнего поставщика удостоверений, не имеют паролей. Люди, которые регистрируются в Glarus BI с помощью IdP, должны продолжать в дальнейшем использовать IdP для входа в Glarus BI.
Примечание об Azure¶
Примечание
Если вы используете Azure, вам может понадобиться Azure AD B2C. Ознакомьтесь с их обзором токенов.
Пример кода с использованием аутентификации на основе JWT¶
Пример кода, использующего JWT-аутентификацию, можно найти в репозитории примеров SSO.