Федерация удостоверений рабочей нагрузки

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

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

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

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

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

Федерация удостоверений рабочей нагрузки используется для настройки управляемого удостоверения, назначаемого пользователем, или регистрации приложения в идентификаторе Microsoft Entra для доверия маркеров от внешнего поставщика удостоверений (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 и репозитории GitHub в Центре администрирования Microsoft Entra или с помощью Microsoft Graph. Далее задайте настройки рабочего процесса GitHub Actions, чтобы получить маркер доступа от поставщика удостоверений Майкрософт и иметь доступ к ресурсам Azure.
  • Google Cloud. Сначала настройте отношение доверия между назначаемым пользователем управляемым удостоверением или приложением в идентификаторе Microsoft Entra и удостоверением в Google Cloud. Затем настройте рабочую нагрузку программного обеспечения, запущенную в Google Cloud, чтобы получить маркер доступа от поставщика удостоверений Майкрософт и получить доступ к защищенным ресурсам Microsoft Entra. См. статью Access Microsoft Entra, защищенные ресурсами из приложения в Google Cloud.
  • Рабочие нагрузки, выполняемые в Amazon Web Services (AWS). Сначала настройте отношение доверия между управляемым удостоверением или приложением, назначенным пользователем, в идентификаторе Microsoft Entra и удостоверением в Amazon Cognito. Затем настройте рабочую нагрузку программного обеспечения, запущенную в AWS, чтобы получить маркер доступа от поставщика удостоверений Майкрософт и получить доступ к защищенным ресурсам Microsoft Entra. См . федерацию удостоверений рабочей нагрузки с AWS.
  • Другие рабочие нагрузки, работающие на вычислительных платформах за пределами Azure. Настройте отношение доверия между управляемым удостоверением или приложением, назначенным пользователем, в идентификаторе Microsoft Entra и внешнем поставщике удостоверений для вашей вычислительной платформы. Маркеры, выданные этой платформой, можно использовать для проверки подлинности на платформе удостоверений Майкрософт и вызова APIs в экосистеме Майкрософт. Используйте поток учетных данных клиента для получения маркера доступа из платформа удостоверений Майкрософт и передачи в JWT поставщика удостоверений, вместо его создания с помощью сохраненного сертификата.
  • SPIFFE и SPIRE — это набор не зависящих от платформы стандартов с открытым исходным кодом для предоставления удостоверений рабочих нагрузок программного обеспечения, развернутых на разных платформах и поставщиках облачных служб. Сначала настройте отношение доверия между назначаемым пользователем управляемым удостоверением или приложением в идентификаторе Microsoft Entra и идентификатором SPIFFE для внешней рабочей нагрузки. Затем настройте внешнюю рабочую нагрузку программного обеспечения, чтобы получить маркер доступа от поставщика удостоверений Майкрософт и получить доступ к защищенным ресурсам Microsoft Entra. См . федерацию удостоверений рабочей нагрузки с SPIFFE и SPIRE.
  • Создайте подключение к службе в Azure Pipelines (предварительная версия). Создайте подключение службы Azure Resource Manager с помощью федерации удостоверений рабочей нагрузки.

Примечание.

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

Как это работает

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

  • Назначаемое пользователем управляемое удостоверение с помощью Центра администрирования Microsoft Entra, Azure CLI, Azure PowerShell, Azure SDK и шаблонов Azure Resource Manager (ARM). Внешняя рабочая нагрузка использует маркер доступа для доступа к защищенным ресурсам Microsoft Entra без необходимости управлять секретами (в поддерживаемых сценариях). Действия по настройке отношения доверия будут отличаться в зависимости от сценария и внешнего поставщика удостоверений.
  • При регистрации приложения в Центре администрирования Microsoft Entra или через Microsoft Graph. Эта конфигурация позволяет получить маркер доступа для приложения без необходимости управлять секретами за пределами Azure. Дополнительные сведения см. в руководстве по настройке приложения для доверия к внешнему поставщику удостоверений.

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

Diagram showing an external token exchanged for an access token and accessing Azure

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

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

Следующие шаги

Узнайте больше о принципах работы федерации удостоверений рабочей нагрузки:

  • Как создавать, удалять, получать или обновлять учетные данные федеративного удостоверения в управляемом удостоверении, назначаемом пользователем.
  • Создание, удаление, получение или обновление учетных данных федеративного удостоверения при регистрации приложения.
  • Ознакомьтесь с обзором удостоверения рабочей нагрузки, чтобы узнать, как настроить рабочую нагрузку Kubernetes, чтобы получить маркер доступа от поставщика удостоверений Майкрософт и получить доступ к защищенным ресурсам Microsoft Entra.
  • Ознакомьтесь с документацией по GitHub Actions, чтобы узнать больше о настройке рабочего процесса GitHub Actions для получения маркера доступа от поставщика удостоверений Майкрософт и доступа к защищенным ресурсам Microsoft Entra.
  • Как идентификатор Microsoft Entra использует предоставление учетных данных клиента OAuth 2.0 и утверждение клиента, выданное другим поставщиком удостоверений для получения маркера.
  • Дополнительные сведения о формате JWT, созданных внешними поставщиками удостоверений, см. в статье о формате утверждения.