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