Sécuriser un appareil avec contraintes d’entrée à l’aide de Microsoft Entra ID et des API REST Azure Maps
Ce guide explique comment sécuriser applications ou appareils publics qui ne peuvent pas accepter une entrée de navigateur, ou stocker des secrets de manière sécurisée. Ces types d’applications relèvent de la catégorie IoT (Internet des objets). Les télévisions connectées et les applications émettrices de données de capteur en sont des exemples.
Pour afficher les détails de l’authentification de votre compte Azure Maps dans le portail Azure :
Connectez-vous au portail Azure.
Accédez au menu du portail Azure. Sélectionnez Toutes les ressources, puis votre compte Azure Maps.
Sous Paramètres dans le volet gauche, sélectionnez Authentification.
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 valeurClient 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
etSecondary Key
sont 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
Remarque
- Lecture prérequise : Scénario : Application de bureau qui appelle des API web
- Le scénario suivant utilise le flux de code d’appareil, qui n’implique pas de navigateur web pour obtenir un jeton.
Créez l’application basée sur l’appareil dans Microsoft Entra ID, afin d’activer la connexion Microsoft Entra dont l’accès aux API REST Azure Maps est accordé.
Dans la liste des services Azure du Portail Azure sélectionnez Microsoft Entra ID>Inscriptions d’applications>Nouvelle inscription.
Entrez un Nom et choisissez Comptes dans cet annuaire d’organisation uniquement comme Type de compte pris en charge. Dans URI de redirection, spécifiez Client public/natif (mobile bureau), puis ajoutez
https://login.microsoftonline.com/common/oauth2/nativeclient
à la valeur. Si vous souhaitez en savoir plus, veuillez consulter la rubrique Microsoft Entra ID Application de bureau qui appelle des API web : inscription d’application. Ensuite, inscrivez l’application.Accédez à Authentification, puis activez Considérer l’application comme un client public pour activer l’authentification par code d’appareil avec Microsoft Entra ID.
Pour attribuer des autorisations d’API déléguées à Azure Maps, accédez à l’application. Sélectionnez Autorisations des API>Ajouter une autorisation. Sous API utilisées par que mon organisation, recherchez et sélectionnez Azure Maps.
Cochez la case en regard de Accéder à Azure Maps, puis sélectionnez Ajouter des autorisations.
Configurez le contrôle d’accès en fonction du rôle Azure (Azure RBAC) pour les utilisateurs ou les groupes. Pour plus d’informations, consultez Accorder l’accès en fonction du rôle pour des utilisateurs à Azure Maps.
Ajoutez du code pour l’acquisition du flux de jeton dans l’application. Pour plus d’informations sur l’implémentation, consultez Flux de code d’appareil. Lors de l’acquisition des jetons, référencez l’étendue :
user_impersonation
qui a été sélectionnée lors des étapes précédentes.Conseil
Utilisez la bibliothèque d’authentification Microsoft (MSAL) pour acquérir des jetons d’accès. Pour plus d’informations, consultez Application de bureau qui appelle des API web : Configuration du code dans la documentation Active Directory.
Composez la requête HTTP avec le jeton obtenu auprès de Microsoft Entra ID, puis envoyez la requête avec un client HTTP valide.
Exemple de requête
Voici un exemple de corps de requête pour le chargement d’une limite géographique simple représentée sous la forme d’un cercle avec un point central et un rayon.
POST /mapData?api-version=2.0&dataFormat=geojson
Host: us.atlas.microsoft.com
x-ms-client-id: 30d7cc….9f55
Authorization: Bearer eyJ0e….HNIVN
L’exemple de corps de requête suivant est au format GeoJSON :
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.126986, 47.639754]
},
"properties": {
"geometryId": "001",
"radius": 500
}
}]
}
Exemple d’en-tête de réponse
Operation-Location: https://us.atlas.microsoft.com/mapData/operations/{udid}?api-version=2.0
Access-Control-Expose-Headers: Operation-Location
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
Recherchez les métriques d’utilisation de l’API pour votre compte Azure Maps :