Sécuriser une application démon

Cet article explique comment héberger des applications démon dans un environnement approuvé et sécurisé dans Microsoft Azure Maps.

Voici des exemples d’applications démon :

  • Travail web Azure
  • Application Azure Function
  • Service Windows
  • Service en arrière-plan opérationnel et fiable

Afficher les détails de l’authentification Azure Maps

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

Important

Pour les applications de production, nous vous recommandons d’implémenter Microsoft Entra ID et le contrôle d’accès en fonction du rôle Azure (Azure RBAC). Pour obtenir une vue d’ensemble des concepts Microsoft Entra, consultez Authentification avec Azure Maps.

Scénario : Authentification par clé partagée avec Azure Key Vault

Les applications qui utilisent l’authentification par clé partagée doivent stocker les clés dans un magasin sécurisé. Ce scénario explique comment stocker en lieu sûr votre clé d’application en tant que secret dans Azure Key Vault. Au lieu de stocker la clé partagée dans la configuration de l’application, l’application peut récupérer la clé partagée sous la forme d’un secret Azure Key Vault. Pour simplifier la regénération des clés, nous recommandons de faire en sorte que les applications utilisent une seule clé à la fois. Les applications peuvent ensuite regénérer la clé inutilisée et déployer la clé regénérée dans Azure Key Vault tout en conservant les connexions actuelles avec une seule clé. Pour comprendre comment configurer Azure Key Vault, consultez le Guide du développeur Azure Key Vault.

Important

Ce scénario accède indirectement à Microsoft Entra ID via Azure Key Vault. Toutefois, nous vous recommandons d’utiliser l’authentification Microsoft Entra directement. L’utilisation directe de Microsoft Entra ID évite la complexité et les exigences opérationnelles supplémentaires liées à l’utilisation de l’authentification par clé partagée et à la configuration de Key Vault.

Les étapes suivantes décrivent ce processus :

  1. Créez un coffre de clés Azure.
  2. Créez un principal de service Microsoft Entra en créant une inscription d’application ou une identité managée. Le principal créé est chargé d’accéder à Azure Key Vault.
  3. Accordez au principal du service l’autorisation d’accès get aux secrets de clé Azure. Pour obtenir des détails sur la façon de définir des autorisations, consultez Attribuer une stratégie d’accès Key Vault à l’aide du portail Azure.
  4. Attribuez-vous temporairement (en tant que développeur) l’autorisation d’accès set aux secrets.
  5. Définissez la clé partagée dans les secrets Key Vault et référencez l’ID de secret en tant que configuration pour l’application démon.
  6. Supprimez votre autorisation set sur les secrets.
  7. Pour récupérer le secret de clé partagée à partir d’Azure Key Vault, implémentez l’authentification Microsoft Entra dans l’application démon.
  8. Créez une demande d’API REST Azure Maps avec la clé partagée. À présent, l’application démon peut récupérer la clé partagée à partir du coffre Key Vault.

Conseil

Si l’application est hébergée dans l’environnement Azure, nous vous recommandons d’utiliser une identité managée pour réduire le coût et la complexité de la gestion d’un secret pour l’authentification. Pour savoir comment configurer une identité managée, consultez Tutoriel : Utiliser une identité managée pour connecter Key Vault à une application web Azure dans .NET.

Scénario : contrôle d’accès en fonction du rôle de Microsoft Entra

Une fois qu’un compte Azure Maps a été créé, la valeur Client ID d’Azure Maps est présente dans la page des détails d’authentification du portail Azure. Cette valeur représente le compte qui doit être utilisé pour les demandes d’API REST. Elle doit être stockée dans la configuration de l’application et récupérée avant d’effectuer des requêtes HTTP. L’objectif du scénario est de permettre à l’application démon de s’authentifier auprès de Microsoft Entra ID et d’appeler les API REST Azure Maps.

Conseil

Pour bénéficier des avantages offerts par les composants d’identité managée, nous vous recommandons d’héberger sur les machines virtuelles Azure, les groupes de machines virtuelles identiques ou App Services.

Héberger un démon sur des ressources Azure

Lorsque vous exécutez des ressources Azure, vous pouvez configurer des identités managées Azure pour favoriser un effort de gestion des informations d’identification minimal et à moindre coût.

Pour permettre à l’application d’accéder à une identité managée, consultez Vue d’ensemble des identités managées.

Les identités managées présentent, entre autres, les avantages suivants :

  • Authentification de chiffrement à clé publique par certificat X509 managée par le système Azure
  • Sécurité Microsoft Entra avec certificats X509 au lieu de clés secrètes client.
  • Azure gère et renouvelle tous les certificats associés à la ressource Managed Identity
  • La gestion opérationnelle des informations d’identification est simplifiée car l’identité managée supprime le besoin d’avoir recours à un service de magasin de secrets sécurisé, tel qu’Azure Key Vault.

Héberger un démon sur des ressources non-Azure

Les identités managées sont disponibles uniquement en cas d’exécution sur un environnement Azure. Ainsi, vous devez configurer un principal de service par le biais d’une inscription d’application Microsoft Entra pour l’application démon.

Créer une nouvelle inscription d’application

Si vous avez déjà créé votre inscription d’application, accédez à Attribuer des autorisations d’API déléguées.

Pour créer une nouvelle inscription d’application :

  1. Connectez-vous au portail Azure.

  2. Sélectionnez Microsoft Entra ID.

  3. Sous Gérer dans le volet de gauche, sélectionnez Inscriptions d’applications.

  4. Sélectionnez l’onglet + Nouvelle inscription.

    A screenshot showing application registration in Microsoft Entra ID.

  5. Entrez un Nom, puis sélectionnez un Type de compte pris en charge.

    Create app registration.

  6. Sélectionnez Inscription.

Attribuer des autorisations d’API déléguées

Pour attribuer des autorisations d’API déléguées à Azure Maps :

  1. Si ce n’est pas déjà fait, connectez-vous au portail Azure.

  2. Sélectionnez Microsoft Entra ID.

  3. Sous Gérer dans le volet de gauche, sélectionnez Inscriptions d’applications.

  4. Sélectionnez votre application.

    Select app registrations.

  5. Sous Gérer dans le volet de gauche, sélectionnez Autorisations d’API.

  6. Sélectionnez Ajouter une autorisation.

    Add app permission.

  7. Sélectionnez l’onglet API utilisées par mon organisation.

  8. Dans la zone de recherche, entrez Azure Maps.

  9. Sélectionnez Azure Maps.

    Request app permission.

  10. Cochez la case Accéder à Azure Maps.

  11. Sélectionnez Ajouter des autorisations.

    Select app API permissions.

Créer un secret client ou configurer un certificat

Pour implémenter l’authentification basée sur un serveur ou une application dans votre application, vous pouvez choisir l’une des deux options suivantes :

  • Charger un certificat à clé publique
  • Créer un secret client.
Charger un certificat à clé publique

Pour charger un certificat à clé publique :

  1. Sous Gérer dans le volet de gauche, sélectionnez Certificats et secrets.

  2. Sélectionnez Charger un certificat. Upload certificate.

  3. À droite de la zone de texte, sélectionnez l’icône de fichier.

  4. Sélectionnez un fichier .crt, .cer ou .pem, puis sélectionnez Ajouter.

    Upload certificate file.

Créer une clé secrète client

Pour créer un secret client :

  1. Sous Gérer dans le volet de gauche, sélectionnez Certificats et secrets.

  2. Sélectionnez + Nouveau secret client.

    New client secret.

  3. Entrez une description pour le secret client.

  4. Sélectionnez Ajouter.

    Add new client secret.

  5. Copiez le secret et stockez-le de manière sécurisée dans un service tel qu’Azure Key Vault. Utilisez également le secret figurant dans la section Demander un jeton avec une identité managée de cet article.

    Copy client secret.

    Important

    Pour stocker de manière sécurisée le certificat ou le secret, consultez le Guide du développeur Azure Key Vault. Vous utiliserez ce secret pour obtenir des jetons auprès de Microsoft Entra ID.

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.

Demander un jeton avec identité managée

Une fois qu’une identité managée a été configurée pour la ressource d’hébergement, vous pouvez utiliser le kit SDK Azure ou l’API REST pour acquérir un jeton pour Azure Maps. Pour savoir comment acquérir un jeton d’accès, consultez Acquérir un jeton d’accès.

Demander un jeton avec l’inscription d’application

Une fois que votre application est inscrite et associée à Azure Maps, vous devez demander un jeton d’accès.

Pour acquérir le jeton d’accès :

  1. Si ce n’est pas déjà fait, connectez-vous au portail Azure.

  2. Sélectionnez Microsoft Entra ID.

  3. Sous Gérer dans le volet de gauche, sélectionnez Inscriptions d’applications.

  4. Sélectionnez votre application.

  5. Vous devez voir la page Vue d’ensemble. Copiez les valeurs de l’ID d’application (client) et de l’ID de l’annuaire (locataire).

    Copy token parameters.

Cet article utilise l’application Postman pour créer la demande de jeton, mais vous pouvez utiliser un autre environnement de développement d’API.

  1. Dans l’application Postman, sélectionnez New (Nouveau).

  2. Dans la fenêtre Create New (Créer), sélectionnez HTTP Request (Requête HTTP).

  3. Entrez un Nom de demande pour la demande, tel que POST Token Request.

  4. Sélectionnez la méthode HTTP POST.

  5. Entrez l’URL suivante dans la barre d’adresse (remplacez {Tenant-ID} par l’ID de l’annuaire (locataire), {Client-ID} par l’ID de l’application (client) et {Client-Secret} par votre secret client) :

    https://login.microsoftonline.com/{Tenant-ID}/oauth2/v2.0/token?response_type=token&grant_type=client_credentials&client_id={Client-ID}&client_secret={Client-Secret}&scope=https://atlas.microsoft.com/.default
    
  6. Sélectionnez Envoyer.

  7. Vous devez voir la réponse JSON suivante :

{
    "token_type": "Bearer",
    "expires_in": 86399,
    "ext_expires_in": 86399,
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFq..."
}

Pour plus d’informations sur le flux d’authentification, consultez la page relative au flux des informations d’identification du client OAuth 2.0 sur la plateforme d’identités Microsoft.

Étapes suivantes

Pour obtenir des exemples plus détaillés :

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 :