Microsoft Entra ID
Регистрация приложения в Entra ID, обязательный claim auth_time и подключение к пространству Calab.
Microsoft Entra ID (бывший Azure AD) подключается по OpenID Connect с двумя дополнениями: issuer привязан к конкретному tenant, а auth_time нужно включить вручную как дополнительный claim. Общие требования — на странице OpenID Connect.
Что важно заранее
- Только конкретный tenant. Issuer URL — строго
https://login.microsoftonline.com/<tenant-id>/v2.0. Адресаcommon,organizationsиconsumersне принимаются. Calab дополнительно сверяет claimtidв каждом ID token с указанным Tenant ID. auth_timeне приходит по умолчанию. В Entra v2 его нужно добавить как optional claim. Без него вход отклоняется.- Аутентификация клиента —
client_secret_post(Calab выбирает её для Entra автоматически).
Шаг 1. Регистрация приложения
В центре администрирования Microsoft Entra:
- «App registrations» → «New registration».
- Name — например,
Calab. Supported account types — «Accounts in this organizational directory only» (single tenant). - Redirect URI — платформа «Web», адрес
https://id.example.com/api/auth/sso/callback/<connection-id>. ID подключения появится после шага 3; можно зарегистрировать приложение без адреса и добавить его позже в «Authentication». - Нажмите «Register» и запишите Application (client) ID и Directory (tenant) ID со страницы «Overview».
Шаг 2. Секрет и auth_time
- «Certificates & secrets» → «New client secret». Скопируйте Value (не Secret ID) — его покажут один раз.
- «Token configuration» → «Add optional claim» → тип токена ID → отметьте
auth_time→ «Add».
Шаг 3. Подключение в Calab
Настройки пространства → «Настройка SSO» → «SSO-подключение»:
| Поле | Значение |
|---|---|
| «Название» | Например, «Вход через Microsoft» |
| «Провайдер» | «Microsoft Entra ID» |
| «Issuer URL» | https://login.microsoftonline.com/<tenant-id>/v2.0 |
| «Tenant ID» | Directory (tenant) ID в каноническом виде, строчными буквами: 00000000-0000-0000-0000-000000000000 |
| «Client ID» | Application (client) ID |
| «Секрет клиента» | Value секрета из шага 2 |
«Сохранить». Затем возьмите connection.id из GET /api/workspaces/{workspace_id}/identity и добавьте адрес возврата в «Authentication» приложения Entra.
Шаг 4. Привязка, проверка, активация
Как для любого OIDC-провайдера:
- «Привязать корпоративный вход» — привяжите свою учётную запись Entra.
- «Проверка и активация» → «Проверить вход в браузере».
- Не позже чем через 5 минут — «Активировать проверенное подключение».
Затем выберите режим в «Политике входа» — см. режимы.
Сроки секрета
У секретов Entra есть срок действия. Заведите напоминание: до истечения создайте новый секрет в Entra, введите его в «Секрет клиента» и снова проверьте и активируйте подключение. Ротация отзывает текущие подтверждения SSO — подробности в разделе смена секрета.
Частые ошибки
| Симптом | Причина |
|---|---|
| Не сохраняется подключение | Issuer не tenant-specific, или Tenant ID не совпадает с issuer, или Tenant ID записан не в каноническом виде |
| «identity access denied» при проверке | Нет optional claim auth_time; адрес возврата не зарегистрирован; вход выполнен учётной записью другого tenant |
| AADSTS50011 в браузере | Адрес возврата в Entra не совпадает с https://id.example.com/api/auth/sso/callback/<connection-id> |
Больше — в диагностике.