es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Público no válido al proteger la Función de Azure con la autenticación de Servicio de Aplicaciones (EasyAuth) y un proveedor de identificación abierta personalizado.

Tengo una Función de Azure (probada tanto en Windows como en Linux Consumption) que utiliza Autenticación de Servicio de Aplicaciones de Azure (Easy Auth) con un proveedor personalizado de OpenId Connect para autenticar mi Función de Azure con un activador http.

Configuré un cliente en mi Proveedor de Identidad (basado en Duende Identity Server), adquirí un token y luego envié una solicitud a la Función de Azure (que contiene solo el código que se crea inicialmente por Visual Studio al crear un proyecto de aplicación de funciones).

Esta es la configuración que hice en el Portal de Azure:
Una imagen que describe la configuración en el Portal de Azure

Cuando ahora envío la solicitud al punto final de la función de Azure, siempre obtengo el siguiente error:

{
"code": 401,
"message": "IDX10214: Falló la validación de audiencia. Audiencias: 'Sistema de Cadena'. No coincidió con: validationParameters.ValidAudience: 'Sistema de Cadena' o validationParameters.ValidAudiences: 'Sistema de Cadena'."
}

No encontré ninguna opción para configurar una audiencia en el Portal de Azure o a través de la CLI de Azure y no hay documentación sobre cómo debe verse la audiencia para que sea aceptada.

También encontré un problema en Github que describe básicamente el mismo error:
https://github.com/MicrosoftDocs/azure-docs/issues/72019

¿Cómo puedo ver qué audiencias son válidas, configurar una audiencia válida en la Autenticación del Servicio de Aplicaciones de Azure o solucionar ese error por completo?

PD: Si desactivo la autenticación en Azure, obviamente se activa la función y devuelve una respuesta.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución:

    El mensaje de error indica que la validación de la audiencia ha fallado, lo que significa que el token no es aceptado por la Función de Azure porque la audiencia no es válida. Para resolver este problema, debe asegurarse de que la audiencia especificada en el token coincida con la audiencia esperada por la Función de Azure.

    Aquí hay lo que puede hacer para solucionar el error por completo:

    1. Verifique la audiencia de su token – Asegúrese de que la audiencia en su token coincida con la audiencia esperada por la Función de Azure. Puede verificar la audiencia del token decodificándolo. Asegúrese de que el campo “aud” en el token coincida exactamente con el “ID de cliente” especificado en la configuración de Autenticación de su App Service.
    2. Configure la audiencia válida en la Autenticación de App Service – Azure App Service proporciona una opción para configurar una audiencia válida para el proveedor de autenticación. Puede establecer este valor en Azure Portal o mediante Azure CLI.

      Azure Portal:

      • Vaya a su App Service> Autenticación / Autorización.
      • Desplácese hasta la sección “Configuración avanzada” y haga clic en “Agregar nueva configuración”.
      • Agregue una nueva configuración con los siguientes valores:
        • Nombre: ValidAudiences
        • Valor: <su_id_de_cliente>
      • Guarde la configuración e intente acceder a la función nuevamente.

      Azure CLI:

      • Ejecute el siguiente comando para establecer el valor “ValidAudiences”:
        az webapp auth update --ids <id_de_grupo_de_recursos>/providers/Microsoft.Web/sites/<nombre_de_app_service> --aad-allowed-token-audiences <su_id_de_cliente>
      • Guarde la configuración e intente acceder a la función nuevamente.

      Nota: Reemplace <su_id_de_cliente> con el “ID de cliente” especificado en la configuración de Autenticación de su App Service.

    3. Verifique la configuración del proveedor de identidad – Asegúrese de que el parámetro “Audiencia” en la configuración del cliente del proveedor de identidad coincida con el “ID de cliente” especificado en la configuración de Autenticación de su App Service.

    4. Verifique el emisor del token – Asegúrese de que el emisor del token coincida con el especificado en la configuración de Autenticación de su App Service. Puede verificar el emisor del token decodificándolo y verificando el campo “iss”.

    Siguiendo estos pasos, debería poder solucionar el error de validación de la audiencia y autenticar su Función de Azure con éxito.

Comments are closed.