Compartir a través de


Autenticación y autorización en Azure App Service para aplicaciones móviles

Nota

Este producto se retira. Para obtener un reemplazo de proyectos con .NET 8 o posterior, consulte la biblioteca datasync de Community Toolkit.

En este artículo se describe cómo funciona la autenticación y la autorización al desarrollar aplicaciones móviles nativas con un back-end de App Service. App Service proporciona autenticación y autorización integradas, por lo que las aplicaciones móviles pueden iniciar sesión de los usuarios sin cambiar ningún código en App Service. Proporciona una manera fácil de proteger la aplicación y trabajar con datos por usuario.

Advertencia

En este artículo se describe la versión 4.2.0 del SDK de cliente de Azure Mobile Apps. La versión actual usa un nuevo mecanismo de autenticación y no admite la autenticación de Azure App Service & autorización de la misma manera.

Para obtener información sobre cómo funciona la autenticación y la autorización en App Service, consulte autenticación y autorización en Azure App Service.

Autenticación con el SDK del proveedor

Una vez configurado todo en App Service, puede modificar los clientes móviles para iniciar sesión con App Service. Hay dos enfoques aquí:

  • Use un SDK que publica un proveedor de identidades determinado para establecer la identidad y, a continuación, obtener acceso a App Service.
  • Use una sola línea de código para que el SDK de cliente de Mobile Apps pueda iniciar sesión a los usuarios.

Propina

La mayoría de las aplicaciones deben usar un SDK de proveedor para obtener una experiencia más coherente cuando los usuarios inician sesión, usar la compatibilidad con la actualización de tokens y obtener otras ventajas que especifica el proveedor.

Cuando se usa un SDK de proveedor, los usuarios pueden iniciar sesión en una experiencia que se integre más estrechamente con el sistema operativo en el que se ejecuta la aplicación. Este método también proporciona un token de proveedor y información de usuario sobre el cliente, lo que facilita mucho el consumo de API de grafos y la personalización de la experiencia del usuario. Este método se conoce como "flujo de cliente" o "flujo dirigido por el cliente" porque el código del cliente inicia sesión de los usuarios.

Después de obtener un token de proveedor, debe enviarse a App Service para su validación. Azure App Service valida el token. A continuación, el servicio crea un nuevo token para el cliente. El SDK de cliente de Mobile Apps tiene métodos auxiliares para administrar este intercambio y adjuntar automáticamente el token a todas las solicitudes al back-end de la aplicación. También puede mantener una referencia al token de proveedor.

Nota

Algunas plataformas, como Windows (WPF), SOLO funcionarán con un flujo dirigido por el cliente. Otros funcionarán igual de bien con el flujo de servidor y cliente. Si la plataforma solo funciona con el flujo dirigido por el cliente, la guía de inicio rápido lo mostrará.

Para más información sobre el flujo de autenticación, consulte flujo de autenticación de App Service.

Autenticación sin EL SDK del proveedor

Si no desea configurar un SDK de proveedor, puede permitir que Azure App Service controle el inicio de sesión automáticamente. El SDK de cliente de Azure Mobile Apps abrirá una vista web al proveedor de su elección e iniciará sesión en el usuario. Este método se denomina "flujo de servidor" o "flujo dirigido al servidor" porque el servidor administra el proceso que inicia la sesión de los usuarios. El SDK de cliente nunca recibe el token de proveedor.

Envío de un token desde el flujo dirigido por el cliente

Al usar el flujo dirigido por el cliente, primero obtenga la información pertinente que Azure App Service necesita para validar el token. En la mayoría de los casos, el token será un token de acceso. Para más información, consulte la documentación de Azure App Service.

A continuación, puede compilar el objeto JSON adecuado. Por ejemplo, si usa MSAL para realizar un flujo dirigido por el cliente en .NET en una aplicación WPF, puede usar el código siguiente:

var requestBody = new JObject(new JProperty("access_token", authResult.AccessToken));
var userInfo = await mobileClient.login("aad", requestBody);

El cuerpo de la solicitud debe coincidir con las expectativas establecidas en la documentación.