Compartir a través de


Habilitar la autenticación y autorización en Azure Container Apps con Microsoft Entra ID

En este artículo se muestra cómo configurar la autenticación para Azure Container Apps para que la aplicación inicie sesión de los usuarios con la Plataforma de identidad de Microsoft como proveedor de autenticación.

La característica de autenticación de Container Apps puede crear automáticamente un registro de aplicaciones con la plataforma de identidad de Microsoft. También es posible usar un registro que el usuario o un administrador de directorios cree por separado.

Opción 1: creación de un nuevo registro de aplicaciones automáticamente

Esta opción está diseñada para simplificar la autenticación y requiere unos pocos pasos.

  1. Inicie sesión en Azure Portal y vaya a la aplicación.

  2. Seleccione Autenticación en el menú de la izquierda. Seleccione Agregar el proveedor de identidades.

  3. Seleccione Microsoft en la lista desplegable del proveedor de identidades. La opción para crear un nuevo registro está seleccionada de forma predeterminada. Puede cambiar el nombre del registro o los tipos de cuenta admitidos.

    Se crea y almacena un secreto de cliente como secreto en la aplicación contenedora.

  4. Si va a configurar el primer proveedor de identidades para esta aplicación, se le pedirá una sección deConfiguración de autenticación de Container Apps. De lo contrario, pase al paso siguiente.

    Estas opciones determinan el modo en que la aplicación responde a las solicitudes no autenticadas y las selecciones predeterminadas redirigirán todas las solicitudes para iniciar sesión con este nuevo proveedor. Puede personalizar este comportamiento ahora o ajustar esta configuración más adelante desde la pantalla principal Autenticación; para ello, elija Editar junto a Configuración de la autenticación. Para obtener más información acerca de estas opciones, consulte Flujo de autenticación.

  5. (Opcional) Seleccione Siguiente: Permisos y agregue los ámbitos que necesite la aplicación. Estos se agregan al registro de la aplicación, pero también puede cambiarlos más adelante.

  6. Seleccione Agregar.

De este modo ya estará listo para usar la plataforma de identidad de Microsoft para realizar la autenticación en la aplicación. El proveedor aparece en la pantalla Autenticación. Desde allí, puede editar o eliminar esta configuración de proveedor.

Opción 2: uso de un registro existente creado por separado

También puede registrar manualmente la aplicación para la plataforma de identidad de Microsoft, personalizar el registro y configurar la autenticación de Container Apps con los detalles de registro. Este enfoque es útil cuando desea usar un registro de aplicaciones de un inquilino de Microsoft Entra diferente al del que se define la aplicación.

Crear un registro de aplicación en Microsoft Entra ID para la aplicación contenedora

En primer lugar, creará el registro de la aplicación. Al hacerlo, recopile la siguiente información que necesita más adelante al configurar la autenticación en la aplicación contenedora:

  • Id. de cliente
  • Id. de inquilino
  • Secreto de cliente (opcional)
  • URI de Id. de aplicación

Para registrar la aplicación, lleve a cabo los siguientes pasos:

  1. Inicie sesión en Azure Portal, busque y seleccione Container Apps y luego elija la aplicación. Anote la Dirección URL de la aplicación. Se usa para configurar el registro de aplicaciones de Microsoft Entra.

  2. En el menú del portal, seleccione Microsoft Entra ID, y a continuación, vaya a la pestaña Registros de aplicaciones y seleccione Nuevo registro.

  3. En la página Register an application (Registrar una aplicación), escriba el nombre del registro de aplicaciones.

  4. En URI de redirección, seleccione Web y escriba <app-url>/.auth/login/aad/callback. Por ejemplo, https://<hostname>.azurecontainerapps.io/.auth/login/aad/callback.

  5. Seleccione Registrar.

  6. Una vez creado el registro de la aplicación, copie el Id. de aplicación (cliente) y el Id. de directorio (inquilino) para usarlos más adelante.

  7. Seleccione Autenticación. En Flujos de concesión implícita e híbridos, habilite Tokens de id. para permitir que el usuario de OpenID Connect inicie sesión desde Container Apps. Seleccione Guardar.

  8. (Opcional) Seleccione Personalización de marca. En URL de página principal, escriba la dirección URL de la aplicación de contenedor y seleccione Guardar.

  9. Seleccione Exponer una API y Establecer junto a URI de id. de aplicación. El valor de id. identifica de forma única la aplicación cuando se usa como recurso, lo que permite que los tokens solicitados concedan acceso. El valor también se usa como prefijo para los ámbitos que cree.

    Para una aplicación de un solo inquilino, puede usar el valor predeterminado, que tiene el formato api://<application-client-id>. También puede especificar un URI más legible, como https://contoso.com/api, en función de uno de los dominios comprobados para el inquilino. Para una aplicación multiinquilino, debe proporcionar un URI personalizado. Para más información sobre los formatos aceptados para los URI de id. de aplicación, consulte la referencia de procedimientos recomendados de registros de aplicaciones.

    El valor se guarda automáticamente.

  10. Seleccione Agregar un ámbito.

    1. En Agregar un ámbito, el URI del identificador de aplicación es el valor que estableció en un paso anterior. Selecciona Guardar y continuar.
    2. En Nombre de ámbito, escriba user_impersonation.
    3. En los cuadros de texto, escriba el nombre y la descripción del ámbito de consentimiento que quiere que vean los usuarios en la página de consentimiento. Por ejemplo, escriba Acceder a <application-name> .
    4. Seleccione la opción Agregar un ámbito.
  11. (Opcional) Para crear un secreto de cliente, seleccione Certificados y secretos>Secretos de cliente>Nuevo secreto de cliente. Escriba una descripción y un tiempo de expiración y seleccione Agregar. Copie el valor del secreto de cliente que se muestra en la página, ya que el sitio no volverá a mostrarlo.

  12. (Opcional) Para agregar varios valores en Direcciones URL de respuesta, seleccione Autenticación.

Habilitar Microsoft Entra ID en la aplicación de contenedor

  1. Inicie sesión en Azure Portal y vaya a la aplicación.

  2. Seleccione Autenticación en el menú de la izquierda. Seleccione Agregar el proveedor de identidades.

  3. Seleccione Microsoft en la lista desplegable del proveedor de identidades.

  4. Para Tipo de registro de aplicación, puede elegir; Elegir un registro de aplicación existente en este directorio que recopila automáticamente la información necesaria de la aplicación. Si el registro procede de otro inquilino o no tiene permiso para ver el objeto de registro, elija Proporcione los detalles de un registro de aplicación existente. Para esta opción, debe rellenar los siguientes detalles de configuración:

    Campo Descripción
    Id. de aplicación (cliente) Use el identificador de la aplicación (cliente) del registro de aplicaciones.
    Secreto del cliente Use el secreto de cliente que generó en el registro de la aplicación. Con un secreto de cliente, se usa el flujo híbrido y la aplicación devuelve tokens de acceso y actualización. Cuando no se establece el secreto de cliente, se usa el flujo implícito y solo se devuelve un token de identificador. El proveedor envía los tokens y se almacenan en el almacén de tokens de EasyAuth.
    Dirección URL del emisor Use <authentication-endpoint>/<TENANT-ID>/v2.0 y reemplace <authentication-endpoint> por el punto de conexión de autenticación del entorno en la nube (por ejemplo, "https://login.microsoftonline.com"" para Azure global), además de reemplazar <TENANT-ID> por el identificador de directorio (inquilino) en el que se creó el registro de la aplicación. Este valor se usa para redirigir a los usuarios al inquilino correcto de Microsoft Entra y para descargar los metadatos adecuados para determinar las claves de firma de tokens adecuadas y el valor de notificación del emisor de tokens, por ejemplo. Para las aplicaciones que usan Azure AD v1, omita /v2.0 en la dirección URL.
    Audiencias de token permitidas De forma implícita, el Id. de aplicación (cliente) se considera siempre que es un público permitido. Si este valor se trata de una aplicación en la nube o de servidor y desea aceptar tokens de autenticación de una aplicación de contenedor de cliente (el token de autenticación se puede recuperar en el encabezado X-MS-TOKEN-AAD-ID-TOKEN), agregue aquí el Id. de aplicación (cliente) de la aplicación cliente.

    El secreto de cliente se almacena como secretos en la aplicación contenedora.

  5. Si este es el primer proveedor de identidades configurado para la aplicación, también se le pedirá una sección de Configuración de autenticación de Container Apps. De lo contrario, pase al paso siguiente.

    Estas opciones determinan el modo en que la aplicación responde a las solicitudes no autenticadas y las selecciones predeterminadas redirigirán todas las solicitudes para iniciar sesión con este nuevo proveedor. Puede cambiar este comportamiento ahora o ajustar esta configuración más adelante desde la pantalla principal Autenticación; para ello, elija Editar junto a Configuración de la autenticación. Para obtener más información acerca de estas opciones, consulte Flujo de autenticación.

  6. Seleccione Agregar.

De este modo ya estará listo para usar la plataforma de identidad de Microsoft para realizar la autenticación en la aplicación. El proveedor aparece en la pantalla Autenticación. Desde allí, puede editar o eliminar esta configuración de proveedor.

Configuración de las aplicaciones cliente para acceder a la aplicación de contenedor

En la sección anterior, registró la aplicación de contenedor para autenticar a los usuarios. En esta sección, registrará aplicaciones nativas de cliente o demonio. Después, pueden solicitar acceso a las API expuestas por la aplicación de contenedor en nombre de los usuarios o a sí mismos. No es necesario completar los pasos de esta sección si solo desea autenticar a los usuarios.

Aplicación cliente nativa

Puede registrar clientes nativos para solicitar acceso a las API de la aplicación de contenedor en nombre de un usuario que ha iniciado sesión.

  1. En Azure portal, seleccione Microsoft Entra ID>Agregar>Registros de aplicaciones.

  2. En la página Register an application (Registrar una aplicación), escriba el nombre del registro de aplicaciones.

  3. En URI de redirección, seleccione Cliente público (móvil y escritorio), y escriba la dirección URL <app-url>/.auth/login/aad/callback. Por ejemplo, https://<hostname>.azurecontainerapps.io/.auth/login/aad/callback.

    Nota:

    Para una aplicación de Microsoft Store, use el valor de SID del paquete como URI en su lugar.

  4. Seleccione Crear.

  5. Una vez creado el registro de aplicación, copie el valor de Id. de aplicación (cliente) .

  6. Seleccione Permisos de API>Agregar permiso>Mis API.

  7. Seleccione el registro de aplicaciones que creó anteriormente para la aplicación de contenedor. Si no ve el registro de aplicaciones, asegúrese de agregar el ámbito de user_impersonation en Crear un registro de aplicación en Microsoft Entra ID para la aplicación contenedora.

  8. En Permisos delegados, seleccione user_impersonation y luego seleccione Agregar permisos.

En esta sección, configuró una aplicación cliente nativa que puede solicitar acceso a la aplicación contenedora en nombre de un usuario.

Aplicación cliente de demonio (llamadas de servicio a servicio)

La aplicación puede adquirir un token para llamar a una API web hospedada en la aplicación de contenedor en nombre propio (no en el nombre de un usuario). Este escenario es útil para las aplicaciones de demonio no interactivas que realizan tareas sin un usuario que ha iniciado sesión. Usa la concesión de credenciales del cliente OAuth 2.0 estándar.

  1. En Azure portal, seleccione Microsoft Entra ID>Agregar>Registros de aplicaciones.
  2. En la página Register an application (Registrar una aplicación), escriba el nombre del registro de aplicaciones de demonio.
  3. En el caso de una aplicación de demonio, no necesita un URI de redireccionamiento para que pueda mantenerlo vacío.
  4. Seleccione Crear.
  5. Una vez creado el registro de aplicación, copie el valor de Id. de aplicación (cliente) .
  6. Seleccione Certificados y secretos>Nuevo secreto de cliente>Agregar. Copie el valor del secreto del cliente que se muestra en la página. No se vuelve a mostrar.

Ahora puede solicitar un token de acceso mediante el Id. de cliente y el secreto de cliente estableciendo el resourceparámetro en el URI del id. de aplicación de la aplicación de destino. A continuación, el token de acceso resultante se puede presentar a la aplicación de destino mediante el Encabezado de autorización OAuth 2.0 estándar, y Autenticación / Autorización de Container Apps valida y usa el token como de costumbre para indicar que el autor de la llamada (una aplicación en este caso, no un usuario) se autentica.

Este proceso permite cualquier aplicación cliente del inquilino de Microsoft Entra para solicitar un token de acceso y autenticarse en la aplicación de destino. Si también desea aplicar autorización para permitir solo determinadas aplicaciones cliente, debe ajustar la configuración.

  1. Defina un rol de aplicación en el manifiesto del registro de la aplicación que representa la aplicación de contenedor que quiere proteger.
  2. En el registro de la aplicación que representa el cliente que debe ser autorizado, seleccione Permisos de API>Agregar un permiso>Mis API.
  3. Seleccione el registro de aplicaciones que creó anteriormente. Si no ve el registro de la aplicación, asegúrese de que ha agregado un rol de aplicación.
  4. En Permisos de aplicación, seleccione el rol de aplicación que creó anteriormente y, a continuación, seleccione Agregar permisos.
  5. Asegúrese de seleccionar Conceder consentimiento del administrador para autorizar la aplicación cliente para que solicite el permiso.
  6. De forma similar al escenario anterior (antes de agregar roles), ahora puede solicitar un token de acceso para el mismo destinoresource, y el token de acceso incluye una notificación de roles que contiene los roles de aplicación autorizados para la aplicación cliente.
  7. Dentro del código de Container Apps de destino, ahora puede validar que los roles previstos están presentes en el token. La capa de autenticación de Container Apps no realiza los pasos de validación. Para más información, consulte Access user claims (Acceso a las notificaciones de usuario).

En esta sección, configuró una aplicación cliente de demonio que puede acceder a la aplicación contenedora mediante su propia identidad.

Trabajar con usuarios autenticados

Use las guías siguientes para obtener detalles sobre cómo trabajar con usuarios autenticados.

Pasos siguientes