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

Le guide suivant se rapporte à une application hébergée sur des serveurs web, gère plusieurs scénarios d’entreprise et procède au déploiement sur des serveurs web. L’application doit impérativement fournir 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

Vous devez créer l’application web dans Microsoft Entra ID pour que les utilisateurs puissent se connecter. Cette application web délègue ensuite 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 de laquelle le contrôle de carte est hébergé. Pour plus d’informations, consultez le Scénario : application web qui connecte les utilisateurs de Microsoft Entra ID. Effectuez les étapes fournies dans le scénario Microsoft Entra.

  3. Une fois l’inscription de l’application terminée, vérifiez que la connexion à l’application fonctionne pour les utilisateurs. Une fois que la connexion réussit, l’application peut bénéficier d’un accès délégué aux API REST Azure Maps.

  4. Pour affecter des autorisations d’API déléguées à Azure Maps, accédez à l’application et sélectionnez Autorisations d’API>Ajouter une autorisation. sélectionnez Azure Maps dans la liste DES API que mon organisation utilise.

    A screenshot showing add app API permissions.

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

    A screenshot showing select app API permissions.

  6. Autorisez l’application web à appeler les API REST Azure Maps en configurant l’inscription d’application avec un secret d’application. Pour obtenir des instructions détaillées, consultez Application web qui appelle des API web : Inscription d’application. Un secret est nécessaire afin de s’authentifier auprès de Microsoft Entra pour le compte de l’utilisateur. Le certificat ou le secret d’inscription d’application doit être stocké dans un magasin sécurisé afin que l’application web puisse le récupérer pour s’authentifier auprès de Microsoft Entra ID.

    • Cette étape peut être ignorée si l’application a déjà un secret et une inscription d’application Microsoft Entra.

    Conseil

    Si l’application est hébergée dans un environnement Azure, nous vous recommandons d’utiliser des identités managées pour les ressources Azure et une instance d’Azure Key Vault afin d’accéder aux secrets en acquérant un jeton d’accès pour accéder aux secrets ou certificats Azure Key Vault. Pour vous connecter à Azure Key Vault afin de récupérer des secrets, consultez le tutoriel sur la connexion par le biais d’une identité managée.

  7. Implémentez un point de terminaison de jeton sécurisé pour le SDK web Azure Maps pour accéder à un jeton.

    • Pour obtenir un échantillon de contrôleur de jeton, consultez les Exemples Microsoft Entra ID Azure Maps.
    • Pour une implémentation non-AspNetCore ou autre, consultez Acquérir un jeton pour l’application dans la documentation de Microsoft Entra.
    • Le point de terminaison de jeton sécurisé est chargé de retourner un jeton d’accès pour l’utilisateur authentifié et autorisé afin d’appeler les API REST Azure Maps.
  8. Pour configurer le contrôle d’accès en fonction du rôle Azure (Azure RBAC) pour les utilisateurs ou les groupes, consultez Accorder l’accès en fonction du rôle pour les utilisateurs.

  9. Configurez la page d’application web avec le SDK web Azure Maps pour accéder au point de terminaison de jeton sécurisé.

var map = new atlas.Map("map", {
        center: [-122.33, 47.64],
        zoom: 12,
        language: "en-US",
        authOptions: {
            authType: "anonymous",
            clientId: "<insert>",  // azure map account client id
            getToken: function (resolve, reject, map) {
                var xhttp = new XMLHttpRequest();
                xhttp.open("GET", "/api/token", true); // the url path maps to the token endpoint.
                xhttp.onreadystatechange = function () {
                    if (this.readyState === 4 && this.status === 200) {
                        resolve(this.responseText);
                    } else if (this.status !== 200) {
                        reject(this.responseText);
                    }
                };

                xhttp.send();
            }
        }
    });
    map.events.add("tokenacquired", function () {
        console.log("token acquired");
    });
    map.events.add("error", function (err) {
        console.log(JSON.stringify(err.error));
    });

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 web :

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 :