Federación de identidades de carga de trabajo

En este artículo se proporciona información general sobre la federación de identidades de carga de trabajo para cargas de trabajo de software. El uso de la federación de identidades de carga de trabajo le permite acceder a recursos protegidos de Microsoft Entra ID sin necesidad de administrar secretos (en escenarios admitidos).

Puede usar la federación de identidades de carga de trabajo en escenarios como Acciones de GitHub, cargas de trabajo que se ejecutan en Kubernetes o cargas de trabajo que se ejecutan en plataformas de proceso fuera de Azure.

¿Por qué usar la federación de identidades de carga de trabajo?

Vea este vídeo para saber por qué usaría la federación de identidades de carga de trabajo.

Normalmente, una carga de trabajo de software (como una aplicación, un servicio, un script o una aplicación basada en contenedores) necesita una identidad para autenticarse y acceder a los recursos o comunicarse con otros servicios. Cuando estas cargas de trabajo se ejecutan en Azure, puede usar identidades administradas y la plataforma Azure administra las credenciales. Sin embargo, solo puede usar identidades administradas para cargas de trabajo de software que se ejecutan en Azure. Para una carga de trabajo de software que se ejecute fuera de Azure, debe usar las credenciales de la aplicación (un secreto o un certificado) para acceder a los recursos protegidos de Microsoft Entra (como Azure, Microsoft Graph, Microsoft 365 o recursos de terceros). Estas credenciales suponen un riesgo para la seguridad y se deben almacenar de forma segura y cambiar periódicamente. También corre el riesgo de tiempo de inactividad del servicio si las credenciales expiran.

Use la federación de identidades de carga de trabajo para configurar una identidad administrada asignada por el usuario o un registro de aplicaciones en Microsoft Entra ID para confiar en los tokens de un proveedor de identidades externo (IdP), como GitHub o Google. El registro de aplicaciones o las identidades administradas asignadas por el usuario en Microsoft Entra ID se convierten en una identidad para cargas de trabajo de software que se ejecutan, por ejemplo, en flujos de trabajo locales de Kubernetes o Acciones de GitHub. Una vez creada esa relación de confianza, la carga de trabajo de software externa intercambia tokens de confianza desde el IdP externo por tokens de acceso de la plataforma de identidad de Microsoft. La carga de trabajo de software utiliza ese token de acceso para acceder a los recursos protegidos de Microsoft Entra a los que se ha concedido acceso a la carga de trabajo. Se elimina la carga de mantenimiento de administrar manualmente las credenciales y elimina el riesgo de filtración de secretos o de que los certificados expiren.

Escenarios admitidos

Se admiten los siguientes escenarios para acceder a recursos protegidos de Microsoft Entra mediante la federación de identidades de carga de trabajo:

  • Cargas de trabajo que se ejecutan en cualquier clúster de Kubernetes (Azure Kubernetes Service (AKS), Amazon Web Services EKS, Google Kubernetes Engine (GKE) o local). Establezca una relación de confianza entre la aplicación o la identidad administrada asignada por el usuario en Microsoft Entra ID y una carga de trabajo de Kubernetes (que se describe en la introducción a la identidad de carga de trabajo).
  • Acciones de GitHub. En primer lugar, configure una relación de confianza entre su identidad administrada asignada por el usuario o la aplicación en Microsoft Entra ID y un repositorio de GitHub en el centro de administración de Microsoft Entra o mediante Microsoft Graph. A continuación, configure un flujo de trabajo de Acciones de GitHub para obtener un token de acceso del proveedor de identidades de Microsoft y acceder a los recursos de Azure.
  • Google Cloud. En primer lugar, configure una relación de confianza entre la identidad administrada asignada por el usuario o la aplicación en Microsoft Entra ID y una identidad en Google Cloud. A continuación, configure la carga de trabajo de software que se ejecuta en Google Cloud para obtener un token de acceso del proveedor de identidades de Microsoft y acceder a recursos protegidos de Microsoft Entra. Consulte Acceso a recursos protegidos de Microsoft Entra desde una aplicación en Google Cloud.
  • Cargas de trabajo que se ejecutan en Amazon Web Services (AWS). En primer lugar, configure una relación de confianza entre la identidad administrada asignada por el usuario o la aplicación en Microsoft Entra ID y una identidad en Amazon Cognito. A continuación, configure la carga de trabajo de software que se ejecuta en AWS para obtener un token de acceso del proveedor de identidades de Microsoft y acceder a recursos protegidos de Microsoft Entra. Consulte Federación de identidades de carga de trabajo con AWS.
  • Otras cargas de trabajo que se ejecutan en plataformas de proceso fuera de Azure. Configure una relación de confianza entre la identidad administrada asignada por el usuario o la aplicación en Microsoft Entra ID y el IdP externo para la plataforma de proceso. Puede usar tokens emitidos por esa plataforma para autenticarse con la plataforma de identidad de Microsoft y llamar a las API del ecosistema de Microsoft. Use el flujo de credenciales de cliente para obtener un token de acceso de la plataforma de identidad de Microsoft y enviar el JWT del proveedor de identidades en lugar de crear uno propio mediante un certificado almacenado.
  • SPIFFE y SPIRE son un conjunto de estándares independientes de la plataforma y de código abierto para proporcionar identidades a las cargas de trabajo de software implementadas entre plataformas y proveedores en la nube. En primer lugar, configure una relación de confianza entre la identidad administrada asignada por el usuario o la aplicación en Microsoft Entra ID y un id. de SPIFFE para una carga de trabajo externa. A continuación, configure la carga de trabajo de software externa para obtener un token de acceso del proveedor de identidades de Microsoft y acceder a recursos protegidos de Microsoft Entra. Consulte Federación de identidades de carga de trabajo con SPIFFE y SPIRE.
  • Creación de una nueva conexión de servicio en Azure Pipelines (versión preliminar). Crea una conexión de servicio de Azure Resource Manager mediante la seguridad automatizada con la federación de identidades de carga de trabajo.

Nota:

Es posible que los tokens emitidos por Microsoft Entra ID no se usen para los flujos de identidad federada. El flujo de credenciales de identidad federada no admite tokens emitidos por Microsoft Entra ID.

Cómo funciona

Cree una relación de confianza entre el IdP externo y una identidad administrada asignada por el usuario o la aplicación en Microsoft Entra ID. La credencial de identidad federada se usa para indicar qué token del IdP externo debe ser de confianza para la aplicación o identidad administrada. Puede configurar una identidad federada:

Sin embargo, el flujo de trabajo para intercambiar un token externo por un token de acceso es el mismo para todos los escenarios. En el diagrama siguiente se muestra el flujo de trabajo general de una carga de trabajo que intercambia un token externo por un token de acceso y, luego, accede a los recursos protegidos de Microsoft Entra.

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

  1. La carga de trabajo externa (por ejemplo, un flujo de trabajo de Acciones de GitHub) solicita un token del IdP externo (por ejemplo, GitHub).
  2. El IdP externo emite un token a la carga de trabajo externa.
  3. La carga de trabajo externa (la acción de inicio de sesión en un flujo de trabajo de GitHub, por ejemplo) envía el token a plataforma de identidad de Microsoft y solicita un token de acceso.
  4. La plataforma de identidad de Microsoft comprueba la relación de confianza en la identidad administrada asignada por el usuario o el registro de aplicación y valida el token externo con la dirección URL del emisor de OpenID Connect (OIDC) en el IdP externo.
  5. Cuando se cumplen las comprobaciones, la plataforma de identidad de Microsoft emite un token de acceso a la carga de trabajo externa.
  6. La carga de trabajo externa accede a los recursos protegidos de Microsoft Entra mediante el token de acceso de la plataforma de identidad de Microsoft. Un flujo de trabajo de Acciones de GitHub, por ejemplo, usa el token de acceso para publicar una aplicación web a Azure App Service.

La plataforma de identidad de Microsoft almacena solo las 100 primeras claves de firma cuando se descargan del punto de conexión OIDC del proveedor de identidades externo. Si el proveedor de identidades externo expone más de 100 claves de firma, puede sufrir errores al usar la federación de identidades de carga de trabajo.

Pasos siguientes

Obtenga más información sobre cómo funciona la federación de identidades de carga de trabajo: