Sécuriser une application monopage avec connexion de l’utilisateur

Le guide suivant concerne une application hébergée sur un serveur de contenu ou ayant des dépendances minimales de serveur Web. L’application fournit des ressources protégées et sécurisées uniquement aux utilisateurs Microsoft Entra. L’objectif du scénario est de permettre à l’application web de s’authentifier auprès de Microsoft Entra ID et d’appeler les API REST Azure Maps pour le compte de l’utilisateur.

Pour afficher les détails de l’authentification de votre compte Azure Maps dans le portail Azure :

  1. Connectez-vous au portail Azure.

  2. Accédez au menu du portail Azure. Sélectionnez Toutes les ressources, puis votre compte Azure Maps.

  3. Sous Paramètres dans le volet gauche, sélectionnez Authentification.

    Screenshot showing your Azure Maps authentication options in the Azure portal.

Trois valeurs sont créées lors de la création du compte Azure Maps. Elles sont utilisées pour prendre en charge deux types d’authentification dans Azure Maps :

  • Authentification Microsoft Entra : Client ID représente le compte devant être utilisé pour les requêtes API REST. La valeur Client ID doit être stockée dans la configuration de l’application, puis être récupérée avant la création de requêtes HTTP Azure Maps qui utilisent l’authentification Microsoft Entra.
  • Authentification par clé partagée : Le Primary Key et Secondary Keysont utilisés en tant que clé d’abonnement pour l’authentification par Clé partagée. L’authentification par Clé partagée s’appuie sur la transmission des clés générées par les comptes Azure Maps lors de chaque requête envoyée à Azure Maps. Nous vous recommandons de régénérer régulièrement vos clés. Pour maintenir les connexions en cours lors de la régénération, deux clés sont fournies. Une clé peut être utilisée, tout en régénérant l’autre. Lorsque vous regénérez vos clés, vous devez mettre à jour toutes les applications qui accèdent à ce compte pour qu’elles utilisent les nouvelles clés. Pour plus d’informations, voir Authentification avec Azure Maps

Créer une inscription d’application dans Microsoft Entra ID

Créez l’application web dans Microsoft Entra ID pour que les utilisateurs s’y connectent. L’application web délègue l’accès des utilisateurs aux API REST Azure Maps.

  1. Dans la liste des services Azure du Portail Azure sélectionnez Microsoft Entra ID>Inscriptions d’applications>Nouvelle inscription.

    A screenshot showing application registration in Microsoft Entra ID.

  2. Entrez un Nom, choisissez un Type de compte de support, fournissez un URI de redirection qui représente l’URL à laquelle Microsoft Entra ID émet le jeton et l’URL dans laquelle le contrôle de carte est hébergé. Pour obtenir un exemple détaillé, consultez Exemples Microsoft Entra ID d’Azure Maps. Sélectionnez ensuite Inscription.

  3. Pour attribuer des autorisations d’API déléguées à Azure Maps, accédez à l’application. Ensuite, sous Inscriptions d’applications, sélectionnez Autorisations d’API>Ajouter une autorisation. Sous API utilisées par que mon organisation, recherchez et sélectionnez Azure Maps.

    Screenshot showing a list of APIs my organization uses.

  4. Cochez la case en regard de Accéder à Azure Maps, puis sélectionnez Ajouter des autorisations.

    Screenshot showing the request app API permissions screen.

  5. Activez oauth2AllowImplicitFlow. Pour l’activer, dans la section Manifeste de l’inscription de votre application, affectez la valeur true à oauth2AllowImplicitFlow.

  6. Copiez l’ID d’application Microsoft Entra et l’ID de locataire Microsoft Entra à partir de l’inscription de l’application afin de les utiliser dans le kit de développement logiciel (SDK) web. Ajoutez les détails d’inscription d’application Microsoft Entra et le x-ms-client-id du compte Azure Maps au kit SDK web.

        <link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css" type="text/css" />
        <script src="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.js" />
        <script>
            var map = new atlas.Map("map", {
                center: [-122.33, 47.64],
                zoom: 12,
                language: "en-US",
                authOptions: {
                    authType: "aad",
                    clientId: "<insert>",  // azure map account client id
                    aadAppId: "<insert>",  // azure ad app registration id
                    aadTenant: "<insert>", // azure ad tenant id
                    aadInstance: "https://login.microsoftonline.com/"
                }
            });
        </script>   
    
  7. Configurez le contrôle d’accès en fonction du rôle Azure (Azure RBAC) pour les utilisateurs ou les groupes. Consultez les sections suivantes pour activer Azure RBAC.

Accorder l’accès en fonction du rôle pour des utilisateurs à Azure Maps

Vous pouvez octroyer le contrôle d’accès en fonction du rôle Azure (Azure RBAC), en attribuant soit un groupe Microsoft Entra, soit un principal de sécurité, à une ou plusieurs définitions de rôle Azure Maps.

Pour afficher les définitions de rôle Azure disponibles pour Azure Maps, consultez Afficher les définitions de rôles intégrés Azure Maps.

Pour obtenir des instructions détaillées sur l’affectation d’un rôle Azure Maps disponible à l’identité gérée créée ou au principal de service, consultez Affecter des rôles Azure à l’aide du portail Azure

Pour gérer efficacement l’application Azure Maps et l’accès aux ressources d’un grand nombre d’utilisateurs, consultez Groupes Microsoft Entra.

Important

Pour que les utilisateurs soient autorisés à s’authentifier sur une application, vous devez d’abord créer les utilisateurs dans Microsoft Entra ID. Pour plus d’informations, consultez Ajouter ou supprimer des utilisateurs à l’aide de Microsoft Entra ID.

Pour en savoir plus sur la gestion efficace d’un répertoire volumineux pour les utilisateurs, consultez Microsoft Entra ID.

Avertissement

Les définitions de rôles intégrées Azure Maps fournissent un accès d’autorisation très large à de nombreuses API REST Azure Maps. Pour limiter l’accès aux API à un minimum, consultez cet article expliquant comment créer une définition de rôle personnalisée et affecter l’identité affectée par le système à la définition de rôle personnalisée. Cela permet d’activer les privilèges minimums nécessaires à l’application pour accéder à Azure Maps.

Étapes suivantes

Apprenez-en davantage sur le scénario d’application monopage :

Recherchez les métriques d’utilisation de l’API pour votre compte Azure Maps :

Explorez des échantillons qui montrent comment intégrer Microsoft Entra ID à Azure Maps :