Esdeveniment
Crea aplicacions intel·ligents
17 de març, 21 - 21 de març, 10
Uneix-te a la sèrie de trobades per crear solucions d'IA escalables basades en casos d'ús del món real amb altres desenvolupadors i experts.
Registreu-vos-hi araAquest navegador ja no s’admet.
Feu l’actualització al Microsoft Edge per aprofitar les característiques més recents, les actualitzacions de seguretat i l’assistència tècnica.
Nota
A partir del 1 de junio de 2024, las aplicaciones de App Service recién creadas pueden generar un nombre de host predeterminado único que use la convención de nomenclatura <app-name>-<random-hash>.<region>.azurewebsites.net
. Los nombres de aplicación existentes permanecen sin cambios. Por ejemplo:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Para obtener más información, consulte Nombre de host predeterminado único para el recurso de App Service.
Azure App Service incluye funcionalidades de autenticación y autorización integradas (lo que a veces se denomina "Easy Auth") para que pueda proporcionar inicio de sesión a los usuarios y acceder a los datos escribiendo una cantidad mínima de código (o directamente sin código) en la aplicación web, API RESTful y back-end móvil, así como Azure Functions. En este artículo se describe cómo App Service le ayuda a simplificar la autenticación y autorización para la aplicación.
No es necesario usar esta característica para la autenticación y autorización. Puede usar las características de seguridad agrupadas en el marco de trabajo web de su elección o puede escribir sus propias utilidades. Sin embargo, deberá asegurarse de que la solución se mantiene actualizada con las actualizaciones más recientes del explorador, el protocolo y la seguridad.
La implementación de una solución segura para la autenticación (que permite el inicio de sesión de los usuarios) y la autorización (que proporciona acceso a los datos seguros) puede suponer un esfuerzo considerable. Debe asegurarse de seguir los procedimientos recomendados y los estándares del sector, así como mantener la implementación actualizada. La característica de autenticación integrada para App Service y Azure Functions puede ahorrar tiempo y esfuerzo, ya que proporciona autenticación integrada con proveedores de identidades federados, lo que le permite centrarse en el resto de la aplicación.
Es posible que su aplicación deba admitir situaciones más complejas, como la integración de Visual Studio o el consentimiento incremental. Hay varias soluciones de autenticación diferentes disponibles para admitir estos escenarios. Para más información, consulte Escenarios de identidad.
App Service usa la identidad federada, en la cual un proveedor de identidades de terceros almacena las identidades de usuario y el flujo de autenticación para usted. De forma predeterminada, están disponibles los siguientes proveedores de identidades:
Proveedor | Punto de conexión de inicio de sesión | Guía de procedimientos |
---|---|---|
Microsoft Entra | /.auth/login/aad |
Inicio de sesión de la plataforma Microsoft Entra de App Service |
/.auth/login/facebook |
Inicio de sesión con Facebook para App Service | |
/.auth/login/google |
Inicio de sesión con Google para App Service | |
X | /.auth/login/x |
Inicio de sesión de X de App Service |
GitHub | /.auth/login/github |
Inicio de sesión de GitHub de App Service |
Inicio de sesión con Apple | /.auth/login/apple |
Inicio de sesión de App Service con el inicio de sesión de Apple (versión preliminar) |
Nuevo proveedor de OpenID Connect | /.auth/login/<providerName> |
Inicio de sesión con OpenID Connect para App Service |
Cuando configura esta característica con uno de estos proveedores, su punto de conexión de inicio de sesión está disponible para la autenticación de los usuarios y para la validación de los tokens de autenticación del proveedor. Se puede proporcionar a los usuarios cualquier número de estas opciones de inicio de sesión.
La habilitación de esta característica hará que todas las solicitudes a la aplicación se redirijan automáticamente a HTTPS, con independencia del valor de configuración de App Service para aplicar HTTPS. Puede deshabilitarlo con la configuración de requireHttps
en la configuración de V2. Sin embargo, recomendamos seguir con HTTPS, y debe asegurarse de que ningún token de seguridad se transmita a través de conexiones HTTP no seguras.
App Service puede usarse para la autenticación con o sin restringir el acceso al contenido del sitio y a las API. Las restricciones de acceso se pueden establecer en la sección Autenticación>Configuración de autenticación de la aplicación web. Para restringir el acceso a la aplicación solo a los usuarios autenticados, establezca Acción necesaria cuando la solicitud no está autenticada para iniciar sesión con uno de los proveedores de identidades configurados. Para autenticar pero no restringir el acceso, establezca Acción necesaria cuando la solicitud no está autenticada en "Permitir solicitudes anónimas (ninguna acción)".
Important
Debe otorgar al registro de cada aplicación su propio permiso y consentimiento. Evite el uso compartido de permisos entre entornos mediante registros de aplicación independientes para ranuras de implementación independientes. Al probar nuevo código, esta práctica puede ayudar a evitar que los problemas afecten a la aplicación de producción.
Arquitectura de características
Comportamiento de la autorización
El componente de middleware de autenticación y autorización es una característica de la plataforma que se ejecuta en la misma máquina virtual que la aplicación. Cuando está habilitado, cada solicitud HTTP entrante pasa por él antes de que la aplicación lo controle.
El middleware de plataforma controla varios aspectos de la aplicación:
El módulo se ejecuta por separado del código de la aplicación y se puede configurar mediante Azure Resource Manager o mediante un archivo de configuración. No se necesitan SDK, lenguajes de programación específicos ni cambios en el código de la aplicación.
El módulo de autenticación y autorización se ejecuta como módulo de IIS nativo en el mismo espacio aislado que la aplicación. Cuando está habilitado, cada solicitud HTTP entrante pasa por él antes de que la aplicación lo controle.
El módulo de autenticación y autorización se ejecuta en un contenedor independiente, aislado del código de la aplicación. Con lo que se conoce como patrón de embajador, interactúa con el tráfico entrante para realizar una funcionalidad similar a la de Windows. Dado que no se ejecuta en proceso, no es posible la integración directa con marcos de lenguaje específicos. Sin embargo, la información pertinente que necesita su aplicación se pasa con encabezados de solicitud, como se explica a continuación.
El flujo de autenticación es el mismo para todos los proveedores, pero varía en función de si desea iniciar sesión con el SDK del proveedor:
Las llamadas desde una aplicación de explorador de confianza en App Service a otra REST API de App Service o Azure Functions se pueden autenticar mediante el flujo dirigido por el servidor. Para obtener más información, vea Personalización del inicio y cierre de sesión.
En la tabla siguiente se muestran los pasos del flujo de autenticación.
Paso | Sin el SDK del proveedor | Con el SDK del proveedor |
---|---|---|
1. Inicio de sesión del usuario | Redirige el cliente a /.auth/login/<provider> . |
El código de cliente proporciona inicio de sesión al usuario directamente con el SDK del proveedor y recibe un token de autenticación. Para información, consulte la documentación del proveedor. |
2. Autenticación posterior | El proveedor redirige el cliente a /.auth/login/<provider>/callback . |
El código de cliente publica el token del proveedor en /.auth/login/<provider> para la validación. |
3. Establecer la sesión autenticada | App Service agrega una cookie autenticada a la respuesta. | App Service devuelve su propio token de autenticación al código de cliente. |
4. Servir contenido autenticado | El cliente incluye la cookie de autenticación en las solicitudes posteriores (controladas automáticamente por explorador). | El código de cliente presenta el token de autenticación en el encabezado X-ZUMO-AUTH . |
Para los exploradores del cliente, App Service puede dirigir automáticamente todos los usuarios no autenticados a /.auth/login/<provider>
. También se pueden presentar a los usuarios uno o varios vínculos /.auth/login/<provider>
para iniciar sesión en la aplicación con sus proveedores preferidos.
Important
De manera predeterminada, esta característica solo proporciona autenticación, no autorización. Es posible que la aplicación todavía tenga que tomar decisiones de autorización, además de las comprobaciones que configure aquí.
En Azure Portal, puede configurar App Service con varios comportamientos cuando la solicitud entrante no esté autenticada. Los encabezados siguientes describen las opciones.
Restricción del acceso
Permitir solicitudes no autenticadas Esta opción aplaza la autorización del tráfico no autenticado al código de la aplicación. Para las solicitudes autenticadas, App Service también transfiere información de autenticación en los encabezados HTTP.
Esta opción proporciona más flexibilidad a la hora de controlar las solicitudes anónimas. Por ejemplo, le permite presentar varios proveedores de inicio de sesión a los usuarios. Sin embargo, debe escribir código.
Requerir autenticación Esta opción rechazará todo tráfico no autenticado a la aplicación. La acción a realizar se especifica en la sección Solicitudes no autenticadas.
Con esta opción, no es necesario escribir ningún código de autenticación en la aplicación. Una autorización más precisa, como la autorización específica de rol, se puede controlarse mediante la inspección de las notificaciones del usuario (consulte Access user claims (Acceso a las notificaciones de usuario)).
Atenció
Este método de restricción del acceso se aplica a todas las llamadas a la aplicación, lo que puede no ser deseable para las aplicaciones que necesitan una página de inicio disponible públicamente, como muchas aplicaciones de una sola página.
Nota
Al usar el proveedor de identidades de Microsoft con los usuarios de su organización, el comportamiento predeterminado es que cualquier usuario del inquilino de Microsoft Entra pueda solicitar un token para la aplicación. Puede configurar la aplicación en Microsoft Entra si quiere restringir el acceso a la aplicación a un conjunto definido de usuarios. App Service también ofrece algunas comprobaciones de autorización integradas básicas que pueden ayudar con algunas validaciones. Para obtener más información sobre la autorización en Microsoft Entra, consulte Conceptos básicos de autorización de Microsoft Entra.
Solicitudes no autenticadas
/.auth/login/<provider>
para el proveedor que elija.HTTP 401 Unauthorized
. También puede configurar el rechazo para que sea un HTTP 401 Unauthorized
para todas las solicitudes.HTTP 403 Forbidden
para todas las solicitudes.HTTP 404 Not found
para todas las solicitudes.App Service proporciona un almacén de tokens integrado, que es un repositorio de tokens que están asociados a los usuarios de las aplicaciones web, API o aplicaciones móviles nativas. Al habilitar la autenticación con cualquier proveedor, este almacén de tokens pasa a estar inmediatamente disponible para la aplicación, si el código de aplicación necesita acceder a los datos de estos proveedores en nombre del usuario, como:
Normalmente, debe escribir código para recopilar, almacenar y actualizar estos tokens en la aplicación. Con el almacén de tokens, simplemente recupera los tokens cuando los necesita e indica a App Service que los actualice cuando dejan de ser válidos.
Los tokens de identificador, los tokens de acceso y los tokens de actualización se almacenaron en caché durante la sesión autenticada y solamente el usuario asociado puede acceder a ellos.
Si no necesita trabajar con tokens en la aplicación, puede deshabilitar el almacén de tokens en la página Autenticación/Autorización de la aplicación.
Si habilita el registro de aplicaciones, verá los seguimientos de autenticación y autorización directamente en los archivos de registro. Si ve un error de autenticación que no esperaba, puede encontrar cómodamente todos los detalles examinando los registros de aplicaciones existentes. Si habilita el seguimiento de solicitudes erróneas, puede ver exactamente qué rol puede haber desempeñado el módulo de autenticación y autorización en una solicitud errónea. En los registros de seguimiento, busque las referencias a un módulo denominado EasyAuthModule_32/64
.
La autenticación de App Service mitiga CSRF inspeccionando las solicitudes de cliente para las condiciones siguientes:
User-Agent
).Origin
o HTTP Referer
o no está en la lista configurada de dominios externos aprobados para el redireccionamiento.Origin
o no está en la lista configurada de orígenes CORS.Cuando una solicitud cumple todas estas condiciones, la autenticación de App Service la rechaza automáticamente. Puede solucionar esta lógica de mitigación agregando el dominio externo a la lista de redireccionamiento a Autenticación>Editar configuración de autenticación>Direcciones URL de redirección externas permitidas.
Al usar Azure App Service con autenticación detrás de Azure Front Door u otros servidores proxy inversos, es necesario tener en cuenta algunos aspectos adicionales.
Deshabilite el almacenamiento en caché de Front Door para el flujo de trabajo de autenticación.
Use el punto de conexión de Front Door para redireccionamientos.
App Service normalmente no es accesible directamente cuando se expone a través de Azure Front Door. Esto se puede evitar, por ejemplo, al exponer App Service a través de Private Link en Azure Front Door Premium. Para evitar que el flujo de trabajo de autenticación redirija el tráfico de nuevo a App Service directamente, es importante configurar la aplicación para volver a redirigir a https://<front-door-endpoint>/.auth/login/<provider>/callback
.
Asegúrese de que App Service usa el URI de redirección correcto.
En algunas configuraciones, App Service usa el FQDN de App Service como el URI de redireccionamiento en lugar del FQDN de Front Door. Esto provocará un problema cuando el cliente se redirige a App Service en lugar de Front Door. Para cambiarlo, la configuración forwardProxy
debe establecerse en Standard
para que App Service respete el encabezado X-Forwarded-Host
establecido por Azure Front Door.
Otros servidores proxy inversos, como Azure Application Gateway o productos de terceros, pueden usar encabezados diferentes y necesitan una configuración forwardProxy diferente.
Esta configuración no se puede realizar mediante Azure Portal y debe realizarse a través de az rest
:
Exportar configuración
az rest --uri /subscriptions/REPLACE-ME-SUBSCRIPTIONID/resourceGroups/REPLACE-ME-RESOURCEGROUP/providers/Microsoft.Web/sites/REPLACE-ME-APPNAME/config/authsettingsV2?api-version=2020-09-01 --method get > auth.json
Actualización de la configuración
Buscar
"httpSettings": {
"forwardProxy": {
"convention": "Standard"
}
}
y asegúrese de que convention
está establecido en Standard
para respetar el encabezado X-Forwarded-Host
usado por Azure Front Door.
Importar configuración
az rest --uri /subscriptions/REPLACE-ME-SUBSCRIPTIONID/resourceGroups/REPLACE-ME-RESOURCEGROUP/providers/Microsoft.Web/sites/REPLACE-ME-APPNAME/config/authsettingsV2?api-version=2020-09-01 --method put --body @auth.json
Ejemplos:
Esdeveniment
Crea aplicacions intel·ligents
17 de març, 21 - 21 de març, 10
Uneix-te a la sèrie de trobades per crear solucions d'IA escalables basades en casos d'ús del món real amb altres desenvolupadors i experts.
Registreu-vos-hi araFormació
Mòdul
Autenticación de usuarios con Azure Static Web Apps - Training
Publique una aplicación de JavaScript de Angular, React, Svelte o Vue con API y autenticación mediante Azure Static Web Apps y Azure Functions. Implemente el código de GitHub en un sitio de ensayo mediante las direcciones URL de vista previa.
Certificació
Microsoft Certified: Identity and Access Administrator Associate - Certifications
Muestre las características de Microsoft Entra ID para modernizar las soluciones de identidad, implementar soluciones híbridas e implementar la gobernanza de identidades.
Documentació
Inicio rápido: agregar autenticación de aplicación a una aplicación web - Azure App Service
Obtenga información sobre cómo habilitar la autenticación de la aplicación para una aplicación web que se ejecuta en Azure App Service. Limite el acceso a la aplicación web solo a los usuarios de su organización.
Tutorial: Autenticación de usuarios E2E - Azure App Service
Aprenda a usar la autenticación y autorización de App Service para proteger sus aplicaciones de App Service de un extremo a otro, incluido el acceso a las API remotas.
Identidades de usuario en AuthN/AuthZ - Azure App Service
Obtenga información sobre cómo acceder a las identidades de usuario al usar la autenticación y autorización integradas en App Service.