Документация/Настройка SSO/Azure AD (OIDC)

Настройка Azure AD (OIDC)

Пошаговое руководство по настройке единого входа с Microsoft Entra ID (Azure AD) с использованием OpenID Connect.

Предварительные условия

  • Тенант Azure AD с admin-доступом
  • Учётная запись администратора организации SecureCodingHub
  • Домен организации верифицирован в SecureCodingHub

Шаг 1 — Зарегистрируйте приложение в Azure AD

1

Перейдите в Azure PortalMicrosoft Entra IDApp registrationsNew registration

2

Имя: SecureCodingHub SSO

3

Supported account types: Accounts in this organizational directory only

4

Redirect URI: Web → https://api.limeplate.com/api/sch/auth/sso/callback/oidc

5

Нажмите Register

Шаг 2 — Создайте Client Secret

1

Перейдите в Certificates & secretsNew client secret

2

Описание: SecureCodingHub

3

Срок: Выберите Вашу политику (рекомендуется: 24 месяца)

4

Скопируйте значение секрета немедленно — оно показывается только один раз

Шаг 3 — Запишите Ваши идентификаторы

Соберите следующие значения из Вашего приложения Azure AD. Они понадобятся Вам на следующем шаге.

НастройкаГде найти
Application (Client) IDOverview-страница
Directory (Tenant) IDOverview-страница
Client SecretCertificates & secrets
Discovery URLhttps://login.microsoftonline.com/{tenant-id}/v2.0/.well-known/openid-configuration

Шаг 4 — Настройте SSO в SecureCodingHub

1

Войдите как Администратор организации → Настройки SSO

2

Протокол: OIDC

3

Entity ID / Client ID: вставьте Ваш Application ID

4

Discovery / Metadata URL: вставьте Ваш OpenID configuration URL

5

Client Secret: вставьте секрет

6

Включите SSO

7

Нажмите Сохранить

app.securecodinghub.com/organization/sso
Единый вход
Аутентифицируйте учащихся через Вашего поставщика идентификации.
OIDC
OpenID Connect — рекомендуется
SAML
Федерация SAML 2.0
a1b2c3d4-e5f6-7890-abcd-ef1234567890
https://login.microsoftonline.com/{tenantId}/v2.0/.well-known/openid-configuration
••••••••••••••••
SSO включён

Шаг 5 — Протестируйте

1

Откройте окно браузера в режиме incognito/private

2

Перейдите к входу SecureCodingHub

3

Введите email-адрес с доменом Вашей организации

4

Вы должны быть перенаправлены к входу Microsoft

5

После аутентификации Вы должны быть вошедшим в SecureCodingHub

Безопасность: Держите Ваш Client Secret в безопасности. Если скомпрометирован, немедленно ротируйте его в Azure Portal и обновите значение в SecureCodingHub.

Распространённые ловушки Azure AD SAML

Когда SAML используется с Azure AD вместо OIDC, три режима отказа составляют большинство продакшен-инцидентов. Первый — несоответствие entity ID. Azure AD примет любую строку в поле Identifier раздела SSO, но если она не точно соответствует SP Entity ID, настроенному в SecureCodingHub, SAML-ответ отклоняется с ошибкой audience restriction. Скопируйте идентификатор из страницы настроек SSO SecureCodingHub напрямую, не вводите его. Завершающие слэши и несоответствия протокола (http vs https) — распространённые тихие отказы.

Вторая ловушка — несоответствие claim issuer URI. Azure AD подписывает утверждения URL метаданных федерации, которые он публикует, а SecureCodingHub валидирует, что issuer в SAML-ответе соответствует issuer в метаданных. Если Вы меняете тенанты, регенерируете сертификаты или копируете URL метаданных из другого приложения, issuer разойдётся, и каждый вход будет проваливаться с ошибкой invalid signature. Третья ловушка — размеры group claim. Azure AD усекает group claims, когда утверждение превышает максимальную полезную нагрузку, заменяя группы ссылкой на graph endpoint. Если Вы полагаетесь на group claims для downstream-сопоставления ролей, настройте Azure AD так, чтобы он эмитировал только группы, назначенные приложению, а не все группы, к которым принадлежит пользователь.

Как проверить, что SSO работает от начала до конца

Проверка от начала до конца имеет три этапа. Во-первых, откройте окно incognito и начните вход со страницы входа SecureCodingHub, используя корпоративный email-адрес. Браузер должен перенаправить на login.microsoftonline.com, представить опыт входа Microsoft и затем перенаправить обратно в SecureCodingHub. Если перенаправление обратно не удаётся, захватите адресную строку в момент сбоя. Код ошибки в строке запроса — самый полезный элемент доказательства.

Во-вторых, подтвердите, что пользователь приземляется в правильной организации и панели. Успешный вход с пустой главной страницей или перенаправление на неправильную организацию обычно указывает на отсутствующее сопоставление организация-домен. В-третьих, выйдите, войдите снова и проверьте, что второй вход тихий или почти тихий. Cookie сессии Microsoft должно сделать второй поток почти невидимым. Если оба входа требуют полной повторной аутентификации, Ваше приложение IdP использует политику сессии, не позволяющую переиспользование cookie single sign-on. Для общих шагов устранения неполадок см. Руководство по настройке SAML.