Authentification et autorisation dans Azure App Service pour les applications mobiles

Cet article décrit comment l’authentification et autorisation fonctionne lorsque vous développez des applications mobiles natives avec un serveur principal App Service. App Service fournit l’authentification intégrée et l’autorisation, pour que vos applications mobiles puissent se connecter aux utilisateurs sans modifier le code dans App Service. Elle propose un moyen simple de protéger votre application et fonctionne avec des données par utilisateur.

Avertissement

Cet article traite de la version 4.2.0 du Kit de développement logiciel (SDK) client Azure Mobile Apps. La version actuelle utilise un nouveau mécanisme d’authentification et ne prend pas en charge l’authentification et l’autorisation Azure App Service de la même façon.

Pour en savoir plus sur l’authentification et l’autorisation dans App Service, consultez Authentification et autorisation dans Azure App Service.

Authentification avec un Kit de développement logiciel (SDK) fournisseur

Une fois tout configuré dans App Service, vous pouvez modifier les clients mobiles pour la connexion à App Service. Il existe deux approches :

  • Exploitez un Kit de développement logiciel (SDK) publié par un fournisseur d’identité donné pour établir l’identité, puis accédez à App Service.
  • Utilisez une seule ligne de code pour que le Kit de développement logiciel (SDK) client Mobile Apps puisse connecter des utilisateurs.

Conseil

La plupart des applications doivent utiliser un Kit de développement logiciel (SDK) fournisseur pour obtenir une expérience de connexion plus cohérente et tirer parti de la prise en charge de l’actualisation de jetons et obtenir d’autres avantages propres au fournisseur.

Lorsque vous utilisez un Kit de développement logiciel (SDK), l’expérience de connexion s’intègre parfaitement avec le système d’exploitation sur lequel l’application s’exécute. Cette méthode permet également d’obtenir un jeton fournisseur et certaines informations utilisateur sur le client, ce qui facilite beaucoup la consommation d’API graphiques et la personnalisation de l’expérience utilisateur. Cette méthode est appelée « flux client » ou « flux dirigé vers le client » car le code sur le client connecte les utilisateurs.

Une fois qu’un jeton de fournisseur est obtenu, il doit être envoyé à App Service à des fins de validation. Azure App Service valide le jeton. Le service crée ensuite un nouveau jeton pour le client. Le Kit de développement logiciel (SDK) client Mobile Apps dispose de méthodes auxiliaires visant à gérer cet échange et joindre automatiquement le jeton à toutes les requêtes du back end de l’application. Vous pouvez également conserver une référence au jeton de fournisseur.

Remarque

Certaines plateformes, telles que Windows (WPF), fonctionnent UNIQUEMENT avec un flux dirigé vers le client. D’autres fonctionnent aussi bien avec un flux serveur et un flux client. Si la plateforme fonctionne uniquement avec le flux dirigé vers le client, le guide de démarrage rapide l’indique.

Pour plus d’informations sur le flux d’authentification, consultez Flux d’authentification App Service.

Authentification sans Kit de développement logiciel (SDK) fournisseur

Si vous ne voulez pas configurer un kit SDK de fournisseur, vous pouvez autoriser Azure App Service à gérer la connexion à votre place. Le kit SDK client Azure Mobile Apps ouvre une vue web du fournisseur de votre choix et connecte l’utilisateur. Cette méthode est appelée « flux serveur » ou « flux dirigé vers le serveur », car le serveur gère le processus qui connecte les utilisateurs. Le kit SDK client ne reçoit jamais le jeton du fournisseur.

Envoi d’un jeton à partir du flux dirigé vers le client

Lorsque vous utilisez le flux dirigé vers le client, obtenez d’abord les informations pertinentes dont Azure App Service a besoin pour valider le jeton. Dans la plupart des cas, le jeton est un jeton d’accès. Pour plus d’informations, consultez la documentation relative à Azure App Service.

Vous pouvez ensuite générer l’objet JSON approprié. Par exemple, si vous utilisez MSAL pour effectuer un flux dirigé vers le client sur .NET dans une application WPF, vous pouvez utiliser le code suivant :

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

Le corps de la demande doit correspondre aux attentes énoncées dans la documentation.