Настройка OIDC-провайдеров (Spirit IAM)
Spirit IAM поддерживает интеграцию с кастомными провайдерами через протокол OIDC. Ниже приведена пошаговая инструкция по добавлению нового провайдера.
Предупреждение: При добавлении кастомного провайдера стандартный провайдер Keycloak отключается.
Как добавить кастомного OIDC-провайдера
-
Создайте клиента в вашем OIDC-провайдере. Убедитесь, что клиент настроен с поддержкой OIDC, и получите следующие данные:
client_idclient_secretissuer_url- Необходимые
scope(например,openid,email,profile)
-
Создайте маппер в формате Jsonnet. Ра зместите файл маппера в директории
spirit/kratosна контрольном хосте.
Маппер преобразует OIDC-claims в структуру профиля пользователя в Kratos.Пример маппера для Keycloak (
oidc.keycloak.jsonnet):local claims = std.extVar('claims');if std.length(claims.sub) == 0 thenerror 'claim sub not set'else {identity: {traits: {email: claims.email,preferred_username: claims.preferred_username,given_name: if std.objectHas(claims, 'given_name') then claims.given_name else '',family_name: if std.objectHas(claims, 'family_name') then claims.family_name else '',name: if std.objectHas(claims, 'name') then claims.name else '',},},} -
Добавьте в вашем клане переменную
sage_spirit_oidc_providersс настройками OIDC-провайдера. Подробнее о настройках можно узнать в документации ORY Kratos (selfservice.methods.oidc). В полеmapper_urlнеобходимо указатьfile:///etc/config/kratos/{имя_файла_маппера}.Пример настройки для Keycloak:
sage_spirit_oidc_providers:- id: keycloaklabel: "Keycloak"provider: genericclient_id: "ID"client_secret: "SECRET"scope:- openid- email- profileissuer_url: "https://example.org/realms/sage"mapper_url: file:///etc/config/kratos/oidc.keycloak.jsonnet -
Выполните установку Sage. Если Sage уже установлен, необходимо запустить команду
spirit_iamдля обновления конфигурации.
Как добавить кастомные Web-хуки при входе/регистрации пользователя
Spirit IAM поддерживает интеграцию с кастомными Web-хуками при входе/регистрации пользователя. Ниже приведена пошаговая инструкция по добавлению новых Web-хуков.
-
Создайте Jsonnet-маппер для тела запроса и разместите файл маппера в директории
spirit/kratosна контрольном хосте (в качестве примера можно посмотреть внутренний мапперansible/spirit_roles/iam_apps/files/spirit/kratos/config/login.webhook.jsonnet). -
Добавьте в клан переменную
sage_spirit_login_webhooksи/илиsage_spirit_registration_webhooksс настройками Web-хука. Подробнее о настройках можно узнать в документации ORY Kratos (selfservice.flows.registration.after.hooks).Пример настройки:
sage_spirit_login_webhooks:- hook: web_hookconfig:url: https://example.org/user_loginmethod: POSTbody: file:///etc/config/kratos/{имя_файла_маппера} -
Выполните установку Sage. Если Sage уже установлен, необходимо запустить команду
spirit_iamдля обновления конфигурации.
Как установить Sage и Spirit IAM на одном хосте
-
Добавьте в клан переменную
https_ports_overrideсо следующим содержимым:https_ports_override:spirit_iam_apps: 9443 -
Выполните установку Sage.