SSO / SAML
Single Sign-On через SAML 2.0 для Enterprise
🔒 Enterprise только
Обзор
FlowLink поддерживает SAML 2.0 SSO для аутентификации через корпоративный IdP (Identity Provider). Пользователи авторизуются через существующую систему (Okta, Azure AD, Keycloak, GitLab и др.), а FlowLink выдает JWT токены с ролями из SAML assertions.
Архитектура
SAML Flow
User → FlowLink SP → IdP → User (login) → IdP → FlowLink ACS → JWT
Настройка
1. Переменные окружения
bash
# Relay config SAML_IDP_METADATA_URL=https://your-idp.example.com/saml/metadata SAML_SP_ENTITY_ID=https://relay.example.com SAML_ASSERTION_CONSUMER=https://relay.example.com/auth/saml/acs
2. SP Metadata для IdP
bash
# Получите SP metadata для настройки в IdP curl https://relay.example.com/auth/saml/metadata
3. Тестирование
bash
# Инициировать SSO login curl -L https://relay.example.com/auth/saml/login # После успешного логина вы получите JWT токен # Используйте его для API запросов curl https://relay.example.com/api/agents \ -H "Authorization: Bearer $JWT_TOKEN"
Поддерживаемые IdP
✅ Okta
✅ Azure AD / Entra ID
✅ Keycloak
✅ GitLab
✅ Google Workspace
✅ OneLogin
✅ Auth0 (SAML)
✅ AWS IAM IdP
Маппинг ролей
Роли из SAML assertion автоматически маппятся на FlowLink RBAC роли. Настройте attribute mapping в IdP, чтобы передавать flowlink_role как SAML attribute.
xml
<!-- Example SAML attribute --> <saml:Attribute Name="flowlink_role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue>operator</saml:AttributeValue> </saml:Attribute>
Эндпоинты
GET /auth/saml/login Инициировать SSOPOST /auth/saml/acs Assertion Consumer ServiceGET /auth/saml/metadata SP metadata XML