SSO и SCIM
Single sign-on и SCIM 2.0-провизионинг для организаций AACsearch.
SSO и SCIM
AACsearch поддерживает федеративный вход (SSO) и автоматическое управление жизненным циклом пользователей (SCIM 2.0). Обе функции — часть Enterprise.
| Возможность | Статус |
|---|---|
| Пароль + 2FA | ✅ Все тарифы |
| Magic link / passkey | ✅ Все тарифы |
| OAuth (Google, Microsoft, GitHub) | ✅ Все тарифы |
| SAML SSO | 🟡 Enterprise — обращайтесь в sales |
| OIDC SSO | 🟡 Enterprise — обращайтесь в sales |
| SCIM 2.0 user provisioning | ✅ Enterprise — self-serve после активации |
| SCIM 2.0 group → role mapping | ✅ Enterprise — см. правила ниже |
| Just-in-time provisioning | ✅ Доступно при включённом SAML/OIDC |
SSO (SAML / OIDC)
SAML и OIDC включаются индивидуально для организации. Напишите на sales@aacsearch.com, укажите:
- Какой IdP (Okta, Azure AD / Entra ID, OneLogin, Google Workspace, Ping, JumpCloud, Auth0, кастомный).
- SAML 2.0 или OIDC.
- Принудительное SSO (блокировать пароль) или нет.
- Домены, которые должны резолвиться в вашу организацию на странице входа.
В ответ — metadata URL (SAML) или client-конфиг (OIDC). Обычно круг — один рабочий день.
Принудительное SSO — переключатель «в одну сторону». После включения пароль не работает для всех участников, включая владельцев. Держите хотя бы один break-glass-аккаунт (с 2FA) вне SSO до успешного end-to-end теста.
Just-in-time провизионинг
При первом входе через IdP AACsearch автоматически создаёт User и добавляет его в организацию как member. Чтобы выдать роль выше (admin, owner):
- Один раз поднять в дашборде, либо
- Настроить SCIM group → role mapping.
JIT не выдаёт admin автоматически — это намеренно. Эскалация прав не должна быть побочным эффектом входа.
SCIM 2.0
SCIM позволяет вашему IdP пушить в AACsearch создание, обновление и деактивацию пользователей. Мы реализуем core schema SCIM 2.0 (RFC 7643) и протокол (RFC 7644) для Users и Groups.
Включение SCIM
- Organization → SCIM provisioning в дашборде.
- Generate token. Скопируйте bearer-токен (
scim_…) один раз и сохраните в IdP — в нашей БД лежит только хэш. - Скопируйте SCIM base URL:
https://app.aacsearch.com/scim/v2. - В IdP создайте SCIM-интеграцию с этим base URL и токеном.
- (Опционально) Добавьте provisioning rules — ниже.
Поддерживаемые эндпоинты
| Эндпоинт | Метод | Примечание |
|---|---|---|
/scim/v2/Users | GET, POST | Список, создание. |
/scim/v2/Users/{id} | GET, PUT, PATCH, DELETE | Чтение, замена, обновление, деактивация. |
/scim/v2/Groups | GET, POST | Список, создание. |
/scim/v2/Groups/{id} | GET, PUT, PATCH, DELETE | Чтение, замена, обновление, удаление. |
/scim/v2/ServiceProviderConfig | GET | Дискавери возможностей. |
/scim/v2/ResourceTypes | GET | Перечисление ресурсов. |
/scim/v2/Schemas | GET | Схемы атрибутов. |
Только bearer-токен (Authorization: Bearer scim_…). Фильтрация и пагинация — по протоколу SCIM.
Ротация токена
Срок жизни у токена не задан. Ротируйте минимум раз в 12 месяцев:
- SCIM provisioning → Regenerate token. Новый токен возвращается один раз.
- Обновите токен в IdP.
- Старый перестаёт работать немедленно.
Регенерация фиксируется в scim_audit_log — см. Аудит.
SCIM group → role mapping
По умолчанию SCIM-провизионированные пользователи — members. Чтобы маппить группы IdP на роли:
- SCIM provisioning → Provisioning rules → Add rule.
- Group name — точное совпадение с
displayNameSCIM-группы, как её шлёт IdP (AACsearch Admins). - Target role —
owner,adminилиmember. - Deprovisioning action — что происходит при удалении из группы:
suspend— отключить пользователя, строку сохранить (восстановимо).remove— удалить из организации (необратимо).notify— оповестить админа, ничего не делать.
- Enabled —
trueдля активации.
Правила вычисляются по порядку. Побеждает самая высокая подходящая роль: пользователь и в Admins, и в Engineering — получит admin.
Аудит
Каждое SCIM-действие пишется в отдельную таблицу scim_audit_log. Действия: config_created, token_regenerated, sync_started, user_provisioned, user_deprovisioned, group_provisioned и их failure-варианты. См. Аудит.
Частые ошибки
- Нет break-glass-аккаунта. Всегда держите один аккаунт с паролем + 2FA вне SSO. Если IdP лёг одновременно с инцидентом — вам всё равно нужно войти.
- Группа «все» → admin. Маппинг группы на роль должен отражать реальную ответственность. Правило
Everyone→adminубивает смысл. - Без деприсижна. Без
suspend/removeуволенный сотрудник сохраняет доступ. Проверяйте, удалив себя из IdP-группы. - Ротация SCIM-токена без обновления IdP. Sync молча останавливается; аудит покажет
sync_failed. Обновляйте в одно окно изменений.
См. также
- API-ключи — отдельный auth-путь для программного доступа
- Аудит —
scim_audit_log - Enterprise — тариф, в который входят SAML/OIDC и SCIM