Добавление клиента Идентификатора Microsoft Entra в качестве поставщика удостоверений OpenID Connect

Применяется: зеленый круг с символом белой галочки, указывающим, что следующее содержимое применяется к внешним клиентам. Внешние клиенты (дополнительные сведения)

Настроив федерацию OpenID Connect (OIDC) с клиентом Microsoft Entra ID, вы можете разрешить пользователям этого клиента регистрировать и выполнять вход в приложения с помощью существующих учетных записей организации. Этот подход использует особую функцию поставщика удостоверений OIDC для федерации с тенантом Microsoft Entra ID.

При добавлении поставщика удостоверений Microsoft Entra ID в параметры входа потока пользователя, пользователи могут осуществить регистрацию и войти в систему в зарегистрированные приложения, определенные в рамках данного потока пользователя, с помощью учетных данных Microsoft Entra ID. (Дополнительные сведения о методах проверки подлинности и поставщиках удостоверений для клиентов.)

Необходимые условия

Регистрация внешнего клиента в клиенте Microsoft Entra ID

Чтобы создать федерацию пользователей из клиента Microsoft Entra ID, сначала зарегистрируйте внешний клиент как приложение в Microsoft Entra ID, который действует как поставщик удостоверений.

При регистрации приложения используйте следующие параметры федерации:

  1. В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.

  2. В разделе URI перенаправления выберите Веб и добавьте следующие URI:

    https://<tenant-subdomain>.ciamlogin.com/<tenant-ID>/federation/oauth2

    https://<tenant-subdomain>.ciamlogin.com/<tenant-subdomain>.onmicrosoft.com/federation/oauth2

    Замените <tenant-subdomain> и <tenant-ID> на значения из внешнего арендатора. Если внешний клиент использует личный домен, добавьте URI перенаправления с личным доменом, например:

    https://<tenant-subdomain>.ciamlogin.com/<custom-domain>/federation/oauth2

Пошаговые инструкции см. в разделе "Регистрация приложения".

После регистрации приложения выполните следующую конфигурацию:

  1. Добавьте секрет клиента и запишите значение секрета (а не идентификатор секрета). Это значение необходимо при настройке поставщика удостоверений во внешнем клиенте.
  2. В разделе "Конфигурация токена" добавьте необязательные утверждения, которые нужно отправить поставщику удостоверений.
  3. В разделе API разрешения добавьте делегированные права Microsoft Graph : , , и . Затем предоставьте согласие администратора для клиента поставщика удостоверений.
  4. В разделе "Обзор" запишите идентификатор приложения (клиента) и идентификаторкаталога (клиента). Эти значения необходимы для настройки федерации во внешнем тенанте.

Настройка поставщика удостоверений во внешнем клиенте

После регистрации внешнего клиента в клиенте Microsoft Entra ID добавьте его в качестве пользовательского поставщика удостоверений OIDC во внешнем клиенте. Выполните действия, описанные в разделе Настройка нового поставщика удостоверений OpenID Connect в Центре администрирования, и используйте следующие значения, специфичные для Microsoft Entra ID:

Setting Ценность
Отображаемое имя Имя, отображаемое пользователям во время входа, например вход с помощью Contoso.
Известная конечная точка https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration
URI издателя OpenID https://login.microsoftonline.com/<tenant-ID>/v2.0, где <tenant-ID> — это идентификатор каталога (клиента) клиента Microsoft Entra ID. При использовании domain_hint для ускорения idP используйте формат издателя на основе домена https://login.microsoftonline.com/<domain-name>/v2.0 вместо идентификатора клиента, где <domain-name> является основным доменным именем клиента Microsoft Entra ID.
идентификатор клиента Идентификатор приложения (клиента) из регистрации приложения, созданной в клиенте Microsoft Entra ID.
Аутентификация клиента client_secret
Секрет клиента Значение секрета клиента, сохранённое при регистрации приложения.
Объем openid profile
Тип ответа code

Добавьте поставщика удостоверений в пользовательский поток

После настройки поставщика удостоверений добавьте его в поток пользователя, чтобы он появился на странице входа. Выполните действия, описанные в Add OIDC identity provider to a user flow, выбрав настроенного поставщика удостоверений Microsoft Entra ID OIDC.

Тестирование потока пользователя

Чтобы проверить настройку федерации, проверьте поток пользователя:

  1. Войдите в Центр администрирования Microsoft Entra.
  2. Перейдите к Entra ID>Внешние идентификаторы>Потоки пользователей.
  3. Выберите настроенный поток пользователя. По крайней мере одно приложение с URI перенаправления должно быть связано с этим потоком пользователя.
  4. Выберите Запустить пользовательский сценарий.
  5. В области "Запуск потока пользователя " для приложения выберите приложение, которое вы хотите протестировать. Остальные поля, включая URL-адрес ответа и тип ответа, заполняются автоматически из регистрации приложения.
  6. Нажмите кнопку "Запустить поток пользователя " или скопируйте URL-адрес конечной точки потока запуска пользователя и откройте его в новом окне браузера.
  7. На странице входа выберите поставщика удостоверений Microsoft Entra ID и войдите с помощью учетной записи из федеративного клиента.

Создайте пользователей во внешнем арендаторе

После настройки федерации у вас есть несколько способов создать внешних пользователей в клиенте с внешним идентификатором.

Регистрация через последовательность действий пользователя

Внешний пользователь может самостоятельно зарегистрироваться в тенанте внешнего идентификатора, используя поток регистрации и входа. Когда пользователь выбирает федеративный поставщик удостоверений Microsoft Entra ID на странице входа и проходит проверку подлинности с учетной записью организации, учетная запись пользователя автоматически создается во внешнем клиенте. Дополнительные сведения см. в разделе "Создание потока пользователей для регистрации и входа" для клиентов.

Создание пользователя с помощью Microsoft API Graph

Администратор может использовать Microsoft API Graph для создания пользователя непосредственно в клиенте внешнего идентификатора. Этот подход полезен для сценариев автоматической подготовки или миграции.

В следующем примере создается федеративный пользователь с удостоверением, связанным с исходным тенантом Microsoft Entra ID.

POST https://graph.microsoft.com/v1.0/users
Content-type: application/json

{
  "accountEnabled": true,
  "displayName": "Test User",
  "givenName": "Test",
  "mail": "testuser@contoso.com",
  "surname": "Test User",
  "identities": [
    {
      "signInType": "federated",
      "issuer": "https://login.microsoftonline.com/<entra-tenant-id>/v2.0/<entra-external-tenant-id>",
      "issuerAssignedId": "<entra-tenant-user-object-id>"
    }
  ]
}

Измените следующие значения:

  • <entra-tenant-id>: идентификатор каталога (арендатора) исходного клиента Microsoft Entra ID.
  • <entra-external-tenant-id>: идентификатор каталога (клиента) клиента внешнего идентификатора.
  • <entra-tenant-user-object-id>: идентификатор объекта пользователя в исходном Microsoft Entra ID клиенте.

Часто задаваемые вопросы

Я получаю ошибку: "Адрес электронной почты не получен от внешнего поставщика удостоверений OIDC". Как исправить его?

Требование наличия электронной почты необходимо для сценариев федерации внешних удостоверений. Убедитесь, что утверждение email входит в конфигурацию Token в клиенте Microsoft Entra ID, используемом в качестве внешнего поставщика удостоверений.

Я настроил Microsoft Entra ID в качестве федеративного поставщика удостоверений, но он не отображается на странице входа. Что я должен проверить?

Убедитесь, что URI издателя и стандартная конечная точка конфигурации OpenID настроены правильно. Некорректная конечная точка издателя или обнаружения мешает отображению провайдера идентификации при входе. Также убедитесь, что:

  • Клиент Microsoft Entra ID полностью настроен в качестве пользовательского поставщика удостоверений OIDC.
  • Обязательные URI перенаправления, значения издателя и области доступа присутствуют и верны.
  • Поставщик удостоверений добавляется в поток пользователя, а не только в арендатора.
  • Изменения конфигурации полностью распространены. Повторное сохранение или повторное восстановление потока пользователя после изменений конфигурации часто устраняет эту проблему.

Что означает ошибка AADSTS500208: The domain is not a valid login domain for the account type ?

Эта ошибка указывает, что вход не удался из-за того, что тип учетной записи не разрешен для использования URL-адреса входа или арендатора. Убедитесь, что используется правильная конечная точка входа и имеет ли учетная запись доступ к целевому клиенту.

Что означает ошибка 40015 при использовании пользовательского поставщика удостоверений OIDC?

Ошибка 40015 означает, что проверка подлинности в поставщике внешних удостоверений выполнена успешно, но внешний идентификатор отклонил ответ, так как настраиваемая конфигурация поставщика удостоверений OIDC или возвращенные маркеры не удалось проверить. Наиболее вероятные причины:

  • URI издателя точно не совпадает со значением издателя в документе обнаружения поставщика удостоверений.
  • Точка авторизации, токена или конечные точки JWKS некорректны или недоступны.
  • Обязательные атрибуты (такие как тема или электронная почта) не возвращаются поставщиком идентификационных данных.

Чем отличается добавление Microsoft Entra ID в качестве настраиваемой федерации OIDC от приглашения пользователей Microsoft Entra ID в качестве гостей B2B?

С федерацией Microsoft Entra ID:

  • Проверка подлинности пользователей всегда выполняется в домашнем Microsoft Entra ID клиенте.
  • Применяются политики условного доступа и многофакторной аутентификации для рабочей силы.
  • Интерфейс входа — это полное перенаправление на домашний клиент, а не интерфейс смешанной фирменной символики, связанный с гостевым входом B2B.

Применяются ли политики условного доступа и MFA Microsoft Entra?

Да. Поскольку все проверки подлинности выполняются в домашнем клиенте Microsoft Entra ID пользователя, следующие политики применяются точно так же, как и для родных Microsoft Entra ID входов,

  • Политики условного доступа
  • Требования многофакторной аутентификации (MFA)
  • Управление, основанное на устройствах и рисках

Замечание

В настоящее время External ID не доверяет MFA, выполненной в Microsoft Entra, поэтому пользователям может быть предложено повторно пройти MFA, если MFA требуется арендатором External ID.

Почему при использовании domain_hint отображается диалоговое окно подтверждения домена?

При использовании domain_hint появится окно подтверждения домена, чтобы гарантировать, что пользователь намеренно входит в нужную организацию, а также защитить от несанкционированного или непредвиденного перенаправления. Эта проверка безопасности не может быть отключена сегодня, даже если ожидается перенаправление.

Можно ли автоматически перенаправлять новых пользователей на основе своего домена электронной почты при вводе адреса электронной почты на странице входа?

Сегодня существует ограниченная поддержка. Использование доменного ускорения с помощью domain_hint поддерживается в определенных конфигурациях, но автоматическое перенаправление, осуществляемое исключительно по домену электронной почты для новых пользователей, пока не поддерживается. Если требуется маршрутизация на основе домена, рекомендуется использовать явные кнопки поставщика удостоверений или передать domain_hint параметр при запуске входа. Значение domain_hint идентификатора Microsoft Entra должно быть доменным именем, например domain_hint=contoso.onmicrosoft.com. Дополнительные сведения см. в разделе Ускорение эмитента.

Могу я скрыть кнопки других поставщиков идентификационных данных и показывать только Microsoft Entra ID?

Вы можете скрыть кнопки поставщика удостоверений, не включив их в поток пользователя, но новые пользователи смогут зарегистрироваться только в том случае, если используется domain_hint.

Возвращаются ли маркеры идентификатора в виде непрозрачных значений?

Нет. Microsoft Entra ID выпускает стандартные подписанные токены JWT. Маркеры идентификаторов доступны для чтения и соответствуют спецификациям OpenID Connect.

Могу ли я использовать несколько арендаторов Microsoft Entra ID с одним внешним арендатором?

Да. Можно настроить несколько клиентов Microsoft Entra ID в качестве отдельных пользовательских поставщиков удостоверений OIDC и предоставлять их в потоках пользователей внешнего идентификатора.