Поделиться через


Основные понятия федерации идентификаций рабочих нагрузок

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

Федерацию удостоверений рабочей нагрузки можно использовать в таких сценариях, как GitHub Actions, рабочие нагрузки, выполняемые в Kubernetes, или рабочие нагрузки, работающие на вычислительных платформах за пределами Azure.

Зачем нужна федерация удостоверений рабочей нагрузки?

Просмотрите это видео, чтобы узнать, почему вы будете использовать федерацию удостоверений рабочей нагрузки.

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

Федерация удостоверений для рабочих нагрузок используется для настройки управляемого удостоверения, назначаемого пользователем или регистрации приложения в Microsoft Entra ID для доверия к токенам от внешнего поставщика удостоверений (IdP), например, GitHub или Google. Назначаемое пользователем управляемое удостоверение или регистрация приложений в идентификаторе Microsoft Entra становится удостоверением для рабочих нагрузок программного обеспечения, выполняемых, например в локальных рабочих процессах Kubernetes или GitHub Actions. После создания отношения доверия внешние рабочие нагрузки программного обеспечения обменивают доверенные маркеры из внешнего поставщика удостоверений для маркеров доступа из платформа удостоверений Майкрософт. Ваша рабочая нагрузка программного обеспечения использует этот маркер доступа для доступа к защищенным ресурсам Microsoft Entra, к которым была предоставлена рабочая нагрузка. Вы устраняете нагрузку на обслуживание вручную управлять учетными данными и устраняет риск утечки секретов или истечения срока действия сертификатов.

Поддерживаемые сценарии

Следующие сценарии поддерживаются для доступа к защищенным ресурсам Microsoft Entra с помощью федерации удостоверений рабочей нагрузки:

  • Рабочие нагрузки, выполняемые в любом кластере Kubernetes (Служба Azure Kubernetes (AKS), Amazon Web Services EKS, Google Kubernetes Engine (GKE) или локальной среде. Установите отношение доверия между управляемым удостоверением или приложением, назначенным пользователем, в идентификаторе Microsoft Entra и рабочей нагрузке Kubernetes (описано в обзоре удостоверения рабочей нагрузки).
  • GitHub Actions. Сначала настройте доверительные отношения между управляемым удостоверением, назначенным пользователем, или приложением в Microsoft Entra ID и репозиторием GitHub в Центре администрирования Microsoft Entra или, используя Microsoft Graph. Затем настройте рабочий процесс GitHub Actions , чтобы получить маркер доступа от поставщика удостоверений Майкрософт и получить доступ к ресурсам Azure.
  • Рабочие нагрузки, выполняемые на вычислительных платформах Azure, используя идентификаторы приложений. Сначала назначьте управляемое удостоверение с пользовательским определением для виртуальной машины Azure или службы приложений. Затем настройте отношение доверия между вашим приложением и назначенной пользователем идентификацией.
  • Google Cloud. Сначала настройте отношение доверия между назначаемым пользователем управляемым удостоверением или приложением в идентификаторе Microsoft Entra и удостоверением в Google Cloud. Затем настройте рабочую нагрузку программного обеспечения, запущенную в Google Cloud, чтобы получить маркер доступа от поставщика удостоверений Майкрософт и получить доступ к защищенным ресурсам Microsoft Entra. См. статью Доступ к защищённым ресурсам Microsoft Entra из приложения в Google Cloud.
  • Рабочие нагрузки, выполняемые в Amazon Web Services (AWS). Сначала настройте отношение доверия между управляемым удостоверением или приложением, назначенным пользователем, в идентификаторе Microsoft Entra и удостоверением в Amazon Cognito. Затем настройте рабочую нагрузку программного обеспечения, запущенную в AWS, чтобы получить маркер доступа от поставщика удостоверений Майкрософт и получить доступ к защищенным ресурсам Microsoft Entra. Смотрите федерацию идентификации рабочих нагрузок с AWS.
  • Другие рабочие нагрузки, работающие на вычислительных платформах за пределами Azure. Настройте отношение доверия между пользовательски назначенным управляемым удостоверением или приложением в идентификаторе Microsoft Entra и внешним поставщиком удостоверений для вашей вычислительной платформы. Маркеры, выданные этой платформой, можно использовать для проверки подлинности на платформе удостоверений Майкрософт и вызова APIs в экосистеме Майкрософт. Используйте поток учётных данных клиента для получения токена доступа от платформы идентификации Microsoft, передавая JWT поставщика удостоверений вместо того, чтобы создавать его самостоятельно, используя хранимый сертификат.
  • SPIFFE и SPIRE — это набор не зависящих от платформы стандартов с открытым исходным кодом для предоставления удостоверений рабочих нагрузок программного обеспечения, развернутых на разных платформах и поставщиках облачных служб. Сначала настройте отношение доверия между назначаемым пользователем управляемым удостоверением или приложением в идентификаторе Microsoft Entra и идентификатором SPIFFE для внешней рабочей нагрузки. Затем настройте внешнюю рабочую нагрузку программного обеспечения, чтобы получить маркер доступа от поставщика удостоверений Майкрософт и получить доступ к защищенным ресурсам Microsoft Entra. См. федерацию идентификаций рабочих нагрузок с SPIFFE и SPIRE.
  • Создадите сервисное подключение в Azure Pipelines. Создайте подключение службы Azure Resource Manager с использованием федерации идентификаций рабочих нагрузок.

Примечание.

Маркеры, выданные идентификатором Microsoft Entra, могут не использоваться для федеративных потоков удостоверений. Поток учетных данных федеративного удостоверения не поддерживает маркеры, выданные идентификатором Microsoft Entra.

Принцип работы

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

Примечание.

Федеративные учетные данные issuersubjectудостоверения и audience значения должны соответствовать соответствующим issuerзначениям и subjectaudience значениям, содержащимся в маркере, отправляемому в идентификатор Microsoft Entra внешним поставщиком удостоверений, чтобы сценарий был авторизован. Дополнительные сведения об этом изменении см. в статье "Новые возможности проверки подлинности".

Однако рабочий процесс для обмена внешнего маркера на маркер доступа аналогичен для всех сценариев. На следующей схеме показан общий рабочий процесс рабочей нагрузки, обменив внешним маркером для маркера доступа, а затем доступ к защищенным ресурсам Microsoft Entra.

Схема, показывающая обмен внешнего токена на токен доступа и доступ к Azure

  1. Внешняя рабочая нагрузка (например, рабочий процесс GitHub Actions) запрашивает маркер из внешнего IdP (например, GitHub).
  2. Внешний IdP выдает маркер внешней рабочей нагрузке.
  3. Внешняя рабочая нагрузка (например, в процессе входа в систему GitHub) отправляет токен на платформу удостоверений Майкрософт и запрашивает токен доступа.
  4. Платформа удостоверений Майкрософт проверяет отношение доверия к управляемому удостоверению, назначаемому пользователем или регистрация приложения и выполняет проверку внешнего токена по URL-адресу издателя OpenID Connect (OIDC) на внешнем поставщике удостоверений.
  5. Если проверки пройдены, платформа удостоверений Майкрософт выдает маркер доступа внешней рабочей нагрузке.
  6. Внешняя рабочая нагрузка обращается к защищенным ресурсам Microsoft Entra с помощью маркера доступа из платформа удостоверений Майкрософт. Рабочий процесс GitHub Actions, в частности использует маркер доступа для публикации веб-приложения в службе приложений Azure.

В платформа удостоверений Майкрософт хранятся только первые 100 ключей подписывания при загрузке из конечной точки OIDC внешнего поставщика OIDC. Если внешний поставщик удостоверений предоставляет более 100 ключей подписывания, при использовании федерации удостоверений рабочей нагрузки могут возникнуть ошибки.

См. также