Configurar una identidad administrada asignada por el usuario para confiar en un proveedor de identidades externo
Artículo
En este artículo se describe cómo administrar una credencial de identidad federada en una identidad administrada asignada por el usuario en el Id. de Microsoft Entra. La credencial de identidad federada crea una relación de confianza entre una identidad administrada asignada por el usuario y un proveedor de identidades externo (IdP). No se admite la configuración de una credencial de identidad federada en una identidad administrada asignada por el sistema.
Después de configurar la identidad administrada asignada por el usuario para confiar en un IdP externo, configure la carga de trabajo de software externo para intercambiar un token del IdP externo por un token de acceso de la plataforma de identidad de Microsoft. La carga de trabajo externa usa el token de acceso para acceder a los recursos protegidos de Microsoft Entra sin necesidad de administrar secretos (en escenarios admitidos). Para más información sobre el flujo de trabajo de intercambio de tokens, lea sobre la federación de identidades de carga de trabajo.
En este artículo aprenderá a crear, enumerar y eliminar credenciales de identidad federada en una identidad administrada asignada por el usuario.
Consideraciones y restricciones importantes
Es posible agregar un máximo de 20 credenciales de identidad federada a una aplicación o a una identidad administrada asignada por el usuario.
Al configurar una credencial de identidad federada se debe proporcionar cierta información importante:
issuer y el sujeto son los elementos clave de información necesarios para configurar la relación de confianza. La combinación deissuer y subject debe ser única en la aplicación. Cuando la carga de trabajo de software externo solicita una plataforma de identidad de Microsoft para intercambiar el token externo por un token de acceso, los valores de emisor y sujeto de la credencial de identidad federada se comprueban con las notificaciones issuer y subject proporcionadas en el token externo. Si se supera la comprobación de validación, la plataforma de identidad de Microsoft emite un token de acceso a la carga de trabajo de software externo.
issuer es la dirección URL del proveedor de identidades externo y debe coincidir con la notificación issuer del token externo que se intercambia. Necesario. Si la notificación issuer incluye espacios en blanco iniciales o finales en el valor, el intercambio de tokens se bloquea. Este campo tiene un límite de 600 caracteres.
subject es el identificador de la carga de trabajo de software externo y debe coincidir con la notificación sub (subject) del token externo que se intercambia. subject no tiene ningún formato fijo, ya que cada IdP usa uno propio: a veces un GUID, a veces un identificador delimitado por dos puntos y, a veces, cadenas arbitrarias. Este campo tiene un límite de 600 caracteres.
Importante
Los valores de configuración del asunto deben coincidir exactamente con la configuración del flujo de trabajo de GitHub. De lo contrario, la plataforma de identidad de Microsoft examinará el token externo entrante y rechazará el intercambio por un token de acceso. No se producirá un error, se producirá un error en el intercambio sin errores.
Importante
Si agrega accidentalmente la información de carga de trabajo externa incorrecta en la configuración del subject, la credencial de identidad federada se crea correctamente sin errores. El error no se hace evidente hasta que se produce un error en el intercambio de tokens.
audiences enumera las audiencias que pueden aparecer en el token externo. Necesario. Debe agregar un único valor de audiencia, que tiene un límite de 600 caracteres. El valor recomendado es "api://AzureADTokenExchange". Indica qué plataforma de identidad de Microsoft debe aceptar en la notificación aud en el token entrante.
name es el identificador único para la credencial de identidad federada. Necesario. Este campo tiene un límite de 3-120 caracteres y debe ser apto para direcciones URL. Se admiten caracteres alfanuméricos, guiones o caracteres de subrayado; el primer carácter solo debe ser alfanumérico. Una vez creado, es inmutable.
description es la descripción facilitada por el usuario para la credencial de identidad federada. Opcional. Microsoft Entra ID no valida ni comprueba la descripción. Este campo tiene un límite de 600 caracteres.
Los caracteres comodín no se admiten en ningún valor de propiedad de credencial de identidad federada.
Obtenga la información del IdP externo y la carga de trabajo de software, que necesita en los pasos siguientes.
Para crear una identidad administrada asignada por el usuario y configurar una credencial de identidad federada, la cuenta requiere la asignación del rol Colaborador o Propietario.
Encuentre el nombre de identidad administrada asignada por el usuario, que necesitará en los pasos siguientes.
Configurar una credencial de identidad federada en una identidad administrada asignada por el usuario
En el Microsoft Azure Portal, vaya a la identidad administrada asignada por el usuario que creó. En Configuración en la barra de navegación izquierda, seleccione Credenciales federadas y luego Agregar credencial.
En el cuadro desplegable Escenario de credenciales federadas, seleccione el escenario.
Acciones de GitHub que implementan recursos de Azure
Para agregar una identidad federada para acciones de GitHub, siga estos pasos:
En Tipo de entidad, seleccione Entorno, Rama, Solicitud de incorporación de cambios o Etiqueta y especifique el valor. Los valores deben coincidir exactamente con la configuración del flujo de trabajo de GitHub. Para más información, consulte los ejemplos.
Agregue un Nombre a la credencial federada.
Los campos de Emisor, Audiencias e Identificador de sujeto se rellenarán automáticamente en función de los valores especificados.
Seleccione Agregar para configurar la credencial federada.
Use los valores siguientes de la identidad administrada de Microsoft Entra para el flujo de trabajo de GitHub:
AZURE_CLIENT_ID la identidad administrada Id. de cliente
AZURE_SUBSCRIPTION_ID el identificador de la suscripción.
En la captura de pantalla siguiente se muestra cómo copiar el identificador de identidad administrada y el identificador de suscripción.
Especifique Entorno en Tipo de entidad y "production" en Nombre del entorno de GitHub.
Ejemplo de etiqueta
Por ejemplo, para un flujo de trabajo desencadenado por un envío de cambios en la etiqueta llamada "v2":
yml
on: push:# Sequence of patterns matched against refs/heads branches: -main -'mona/octocat' -'releases/**'# Sequence of patterns matched against refs/tags tags: -v2 -v1.*
Especifique Etiqueta en Tipo de entidad y "v2" en Nombre de etiqueta de GitHub.
Ejemplo de solicitud de incorporación de cambios
En el caso de los flujos de trabajo desencadenados por un evento de solicitud de incorporación de cambios, especifique un tipo de entidad en Solicitud de incorporación de cambios.
Acceso de Kubernetes a recursos de Azure
Rellene los campos Dirección URL del emisor del clúster, Espacio de nombres, Nombre de la cuenta de servicio y Nombre:
El campo Nombre de la cuenta de servicio es el nombre de la cuenta de servicio de Kubernetes, que proporciona una identidad para los procesos que se ejecutan en un pod.
El campo Espacio de nombres es el espacio de nombres de la cuenta de servicio.
El campo Nombre indica el nombre de la credencial federada, que no se puede cambiar más adelante.
Seleccione Agregar para configurar la credencial federada.
Otros
Seleccione el escenario Otro emisor en el menú desplegable.
Especifique los campos siguientes (mediante una carga de trabajo de software que se ejecuta en Google Cloud como ejemplo):
El campo Nombre indica el nombre de la credencial federada, que no se puede cambiar más adelante.
Identificador de sujeto: debe coincidir con la notificación sub del token emitido por el proveedor de identidades externo. En este ejemplo con Google Cloud, subject es el identificador único de la cuenta de servicio que tiene pensado usar.
Emisor: debe coincidir con la notificación iss del token emitido por el proveedor de identidades externo. Dirección URL que cumple con la especificación de detección de OIDC. Microsoft Entra ID usa esta dirección URL del emisor para capturar las claves que son necesarias para validar el token. En el caso de Google Cloud, el valor de issuer es "https://accounts.google.com".
Seleccione Agregar para configurar la credencial federada.
Enumerar credenciales de identidad federada en una identidad administrada asignada por el usuario
En el Microsoft Azure Portal, vaya a la identidad administrada asignada por el usuario que creó. En Configuración, en la barra de navegación izquierda, seleccione Credenciales federadas.
Se muestran las credenciales de identidad federada configuradas en esa identidad administrada asignada por el usuario.
Eliminar una credencial de identidad federada de una identidad administrada asignada por el usuario
En el Microsoft Azure Portal, vaya a la identidad administrada asignada por el usuario que creó. En Configuración, en la barra de navegación izquierda, seleccione Credenciales federadas.
Se muestran las credenciales de identidad federada configuradas en esa identidad administrada asignada por el usuario.
Para eliminar una credencial de identidad federada específica, seleccione el icono de Eliminar de la credencial.
Obtenga la información del IdP externo y la carga de trabajo de software, que necesita en los pasos siguientes.
Para crear una identidad administrada asignada por el usuario y configurar una credencial de identidad federada, la cuenta requiere la asignación del rol Colaborador o Propietario.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
Configurar una credencial de identidad federada en una identidad administrada asignada por el usuario
Ejecute el comando az identity federated-credential create para crear una nueva credencial de identidad federada en la identidad administrada asignada por el usuario (especificada por el nombre). Especifique los parámetros name, issuer y subject, entre otros.
Azure CLI
az login# set variableslocation="centralus"subscription="{subscription-id}"
rg="fic-test-rg"# user assigned identity nameuaId="fic-test-ua"# federated identity credential nameficId="fic-test-fic-name"# create prerequisites if required.# otherwise make sure that existing resources names are set in variables aboveaz account set --subscription$subscriptionaz group create --location$location--name$rgaz identity create --name$uaId--resource-group$rg--location$location--subscription$subscription# Create/update a federated identity credentialaz identity federated-credential create --name$ficId--identity-name$uaId--resource-group$rg--issuer'https://aks.azure.com/issuerGUID'--subject'system:serviceaccount:ns:svcaccount'--audiences'api://AzureADTokenExchange'
Enumerar credenciales de identidad federada en una identidad administrada asignada por el usuario
Ejecute el comando az identity federated-credential list para leer todas las credenciales de identidad federada configuradas en una identidad administrada asignada por el usuario:
Azure CLI
az login# Set variables
rg="fic-test-rg"# User assigned identity nameuaId="fic-test-ua"# Read all federated identity credentials assigned to the user-assigned managed identityaz identity federated-credential list --identity-name$uaId--resource-group$rg
Obtener una credencial de identidad federada en una identidad administrada asignada por el usuario
az login# Set variables
rg="fic-test-rg"# User assigned identity nameuaId="fic-test-ua"# Federated identity credential nameficId="fic-test-fic-name"# Show the federated identity credentialaz identity federated-credential show --name$ficId--identity-name$uaId--resource-group$rg
Eliminar una credencial de identidad federada de una identidad administrada asignada por el usuario
Ejecute el comando az identity federated-credential delete para eliminar una credencial de identidad federada en una identidad asignada por el usuario existente.
Azure CLI
az login# Set variables# in Linux shell remove $ from set variable statement$rg="fic-test-rg"# User assigned identity name$uaId="fic-test-ua"# Federated identity credential name$ficId="fic-test-fic-name"az identity federated-credential delete --name$ficId--identity-name$uaId--resource-group$rg
Obtenga la información del IdP externo y la carga de trabajo de software, que necesita en los pasos siguientes.
Para crear una identidad administrada asignada por el usuario y configurar una credencial de identidad federada, la cuenta requiere la asignación del rol Colaborador o Propietario.
Para ejecutar los scripts de ejemplo, tiene dos opciones:
Use Azure Cloud Shell, que puede abrir mediante el botón Probar, ubicado en la esquina superior derecha de los bloques de código.
Ejecute los scripts localmente con Azure PowerShell, tal como se describe en la sección siguiente.
Es posible que necesite Exit fuera de la sesión de PowerShell actual después de ejecutar este comando para el siguiente paso.
Instale el módulo Az.ManagedServiceIdentity con el fin de realizar las operaciones con identidades administradas asignadas por el usuario que se indican en este artículo.
Azure PowerShell
Install-Module -Name Az.ManagedServiceIdentity
Configurar una credencial de identidad federada en una identidad administrada asignada por el usuario
Ejecute el comando New-AzFederatedIdentityCredentials para crear una nueva credencial de identidad federada en la identidad administrada asignada por el usuario (especificada por el nombre). Especifique los parámetros name, issuer y subject, entre otros.
Enumerar credenciales de identidad federada en una identidad administrada asignada por el usuario
Ejecute el comando Get-AzFederatedIdentityCredentials para leer todas las credenciales de identidad federada configuradas en una identidad administrada asignada por el usuario:
Eliminar una credencial de identidad federada de una identidad administrada asignada por el usuario
Ejecute el comando Remove-AzFederatedIdentityCredentials para eliminar una credencial de identidad federada en una identidad asignada por el usuario existente.
Obtenga la información del IdP externo y la carga de trabajo de software, que necesita en los pasos siguientes.
Para crear una identidad administrada asignada por el usuario y configurar una credencial de identidad federada, la cuenta requiere la asignación del rol Colaborador o Propietario.
Encuentre el nombre de identidad administrada asignada por el usuario, que necesitará en los pasos siguientes.
Creación y edición de una plantilla
Las plantillas de Resource Manager le ayudan a implementar recursos nuevos o modificados definidos por un grupo de recursos de Azure. Hay disponibles varias opciones para editar e implementar plantillas, tanto locales como basadas en el portal. Puede:
Configurar una credencial de identidad federada en una identidad administrada asignada por el usuario
La credencial de identidad federada y la identidad asignada por el usuario primario se pueden crear o actualizar mediante la plantilla siguiente. Puede implementar plantillas de ARM desde el Azure Portal.
Todos los parámetros de la plantilla son obligatorios.
Hay un límite de 3-120 caracteres para una longitud de nombre de credencial de identidad federada. Debe ser alfanumérico, guion, subrayado. El primer símbolo es solo alfanumérico.
Debe agregar exactamente una audiencia a una credencial de identidad federada. Esta se comprueba durante el intercambio de tokens. Use "api://AzureADTokenExchange" como valor predeterminado.
Las operaciones Enumerar, Obtener y Eliminar no están disponibles con la plantilla. Consulte la CLI de Azure para ver estas operaciones. De forma predeterminada, todas las credenciales de identidad federada secundarias se crean en paralelo, lo que desencadena la lógica de detección de simultaneidad y hace que se produzca un error en la implementación con un código de estado HTTP de conflicto 409. Para crearlas secuencialmente, especifique una cadena de dependencias mediante la propiedad dependsOn.
Asegúrese de que cualquier tipo de automatización crea credenciales de identidad federada en la misma identidad primaria secuencialmente. Las credenciales de identidad federada en distintas identidades administradas se pueden crear en paralelo sin restricciones.
Obtenga la información del IdP externo y la carga de trabajo de software, que necesita en los pasos siguientes.
Para crear una identidad administrada asignada por el usuario y configurar una credencial de identidad federada, la cuenta requiere la asignación del rol Colaborador o Propietario.
Puede ejecutar todos los comandos de este artículo, ya sea en la nube o localmente:
Necesario. Establézcalo en un token de acceso Bearer válido.
Pasos siguientes
Para obtener información sobre el formato necesario de los JWT creados por proveedores de identidades externos, consulte la información sobre el formato de aserción.
Aprenda a crear y administrar identidades de carga de trabajo, así como a concederlas permisos, lo que permite que los flujos de trabajo de implementación se autentiquen de forma segura en Azure.
Muestre las características de Microsoft Entra ID para modernizar las soluciones de identidad, implementar soluciones híbridas e implementar la gobernanza de identidades.
Configure una relación de confianza entre una aplicación en Microsoft Entra ID y un proveedor de identidades externo. Esto permite que una carga de trabajo de software fuera de Azure acceda a los recursos protegidos de Microsoft Entra sin usar secretos ni certificados.
Use la federación de identidades de carga de trabajo para conceder a las cargas de trabajo que se ejecutan fuera de Azure acceso a los recursos protegidos de Microsoft Entra sin usar secretos ni certificados. Esto elimina la necesidad de que los desarrolladores almacenen y mantengan secretos o certificados de larga duración fuera de Azure.
Las credenciales de identidad federada le permiten acceder a los recursos de Azure y Microsoft Graph sin tener que administrar secretos. Esto forma parte de la federación de identidades de carga de trabajo en Azure AD.