Partager via


Créer une inscription d’application Microsoft Entra dans Azure Data Explorer

L’authentification d’application Microsoft Entra est utilisée pour les applications, telles qu’un service sans assistance ou un flux planifié, qui doivent accéder à Azure Data Explorer sans qu’un utilisateur soit présent. Si vous vous connectez à une base de données Azure Data Explorer à l’aide d’une application telle qu’une application web, vous devez procéder à une authentification du principal du service. Cet article explique comment créer et inscrire un principal de service Microsoft Entra, puis l’autoriser à accéder à une base de données Azure Data Explorer.

Créer une inscription d’application Microsoft Entra

L’authentification de l’application Microsoft Entra nécessite la création et l’inscription d’une application avec l’ID Microsoft Entra. Un principal de service est créé automatiquement lorsque l’inscription de l’application est créée dans un locataire Microsoft Entra.

L’inscription de l’application peut être créée dans le Portail Azure ou programmatiquement avec Azure CLI. Choisissez l’onglet qui correspond à votre scénario.

Enregistrer l'application

  1. Connectez-vous à Portail Azure et ouvrez le panneau Microsoft Entra ID.

  2. Accédez aux inscriptions d’applications et sélectionnez Nouvelle inscription.

    Capture d’écran montrant comment démarrer l’inscription d’une nouvelle application.

  3. Nommez l’application, par exemple « example-app ».

  4. Sélectionnez un type de compte pris en charge, qui détermine qui peut utiliser l’application.

  5. Sous URI de redirection, sélectionnez Web pour le type d’application que vous souhaitez créer. L’URI est facultatif et laissé vide dans ce cas.

    Capture d’écran montrant comment inscrire l’inscription d’une nouvelle application.

  6. Sélectionnez Inscrire.

Configurer l’authentification

Il existe deux types d’authentification disponibles pour les principaux de service : l’authentification par mot de passe (secret de l’application) et l’authentification par certificat. La section suivante décrit l’utilisation d’une authentification basée sur un mot de passe pour les informations d’identification de l’application. Vous pouvez également utiliser un certificat X509 pour authentifier votre application. Pour plus d’informations, consultez Comment configurer l’authentification basée sur des certificats Microsoft Entra.

Au cours de cette section, vous allez copier les valeurs suivantes : ID d’application et valeur de clé. Collez ces valeurs quelque part, comme un éditeur de texte, pour une utilisation dans l’étape , configurez les informations d’identification du client dans la base de données.

  1. Accédez au panneau Vue d’ensemble.

  2. Copiez l’ID d’application (client) et l’ID d’annuaire (locataire).

    Remarque

    Vous aurez besoin de l’ID d’application et de l’ID de locataire pour autoriser le principal de service à accéder à la base de données.

  3. Dans le panneau Certificats et secrets , sélectionnez Nouveau secret client.

    Capture d’écran montrant démarrer la création d’une clé secrète client.

  4. Entrez une description et une expiration.

  5. Sélectionnez Ajouter.

  6. Copiez la valeur de la clé.

    Remarque

    Lorsque vous fermez cette page, la valeur de la clé n’est pas accessible.

Vous avez créé votre application Microsoft Entra et votre principal de service.

Configurer des autorisations déléguées pour l’application - facultatif

Si votre application doit accéder à votre base de données à l’aide des informations d’identification de l’utilisateur appelant, configurez les autorisations déléguées pour votre application. Par exemple, si vous créez une API web et que vous souhaitez vous authentifier à l’aide des informations d’identification de l’utilisateur qui appelle votre API.

Si vous avez uniquement besoin d’accéder à une ressource de données autorisée, vous pouvez ignorer cette section et continuer à accorder un accès au principal de service à la base de données.

  1. Accédez au panneau Autorisations de l’API de votre inscription d’application.

  2. Sélectionnez Ajouter une autorisation.

  3. Sélectionnez API utilisées par mon organisation.

  4. Recherchez et sélectionnez Azure Data Explorer.

    Capture d’écran montrant comment ajouter une autorisation d’API Azure Data Explorer.

  5. Dans autorisations déléguées, sélectionnez la zone user_impersonation .

  6. Sélectionnez Ajouter des autorisations.

    Capture d’écran montrant comment sélectionner des autorisations déléguées avec emprunt d’identité de l’utilisateur.

Accorder à un principal de service l’accès à la base de données

Une fois l’inscription de votre application créée, vous devez accorder au principal de service correspondant l’accès à votre base de données. L’exemple suivant donne accès à l’observateur. Pour d’autres rôles, consultez Gérer les autorisations de base de données.

  1. Utilisez les valeurs de l’ID d’application et de l’ID de locataire comme copié à l’étape précédente.

  2. Exécutez la commande suivante dans votre éditeur de requête, en remplaçant les valeurs d’espace réservé ApplicationID et TenantID par vos valeurs réelles :

    .add database <DatabaseName> viewers ('aadapp=<ApplicationID>;<TenantID>') '<Notes>'
    

    Par exemple :

    .add database Logs viewers ('aadapp=1234abcd-e5f6-g7h8-i9j0-1234kl5678mn;9876abcd-e5f6-g7h8-i9j0-1234kl5678mn') 'App Registration'
    

    Le dernier paramètre est une chaîne qui s’affiche sous la forme de notes lorsque vous interrogez les rôles associés à une base de données.

    Remarque

    Après avoir créé l’inscription de l’application, il peut y avoir un délai de plusieurs minutes jusqu’à ce qu’il puisse être référencé. Si vous recevez une erreur indiquant que l’application est introuvable, attendez et réessayez.

Pour plus d’informations sur les rôles, consultez contrôle d’accès en fonction du rôle.

Utiliser les informations d’identification de l’application pour accéder à une base de données

Utilisez les informations d’identification de l’application pour accéder par programmation à votre base de données à l’aide de la bibliothèque cliente.

. . .
string applicationClientId = "<myClientID>";
string applicationKey = "<myApplicationKey>";
string authority = "<myApplicationTenantID>";
. . .
var kcsb = new KustoConnectionStringBuilder($"https://{clusterName}.kusto.windows.net/{databaseName}")
    .WithAadApplicationKeyAuthentication(
        applicationClientId,
        applicationKey,
        authority);
var client = KustoClientFactory.CreateCslQueryProvider(kcsb);
var queryResult = client.ExecuteQuery($"{query}");

Remarque

Spécifiez l’ID d’application et la clé de l’inscription d’application (principal du service) créée précédemment.

Pour plus d’informations, consultez Comment s’authentifier auprès de la bibliothèque d’authentification Microsoft (MSAL) dans les applications et utiliser Azure Key Vault avec l’application web .NET Core.

Dépannage

Erreur de ressource non valide

Si votre application est utilisée pour authentifier les utilisateurs ou les applications pour l’accès, vous devez configurer des autorisations déléguées pour l’application de service. Déclarez que votre application peut authentifier les utilisateurs ou les applications pour l’accès. Si vous ne le faites pas, une erreur semblable à la suivante se produit en cas de tentative d’authentification :

AADSTS650057: Invalid resource. The client has requested access to a resource which is not listed in the requested permissions in the client's application registration...

Vous devez suivre les instructions pour configurer les autorisations déléguées pour l’application.

Votre administrateur de locataire Microsoft Entra peut adopter une stratégie qui empêche les utilisateurs clients de donner leur consentement aux applications. Dans cette situation, une erreur similaire à la suivante se produit quand un utilisateur tente de se connecter à votre application :

AADSTS65001: The user or administrator has not consented to use the application with ID '<App ID>' named 'App Name'

Vous devez contacter votre administrateur Microsoft Entra pour accorder le consentement à tous les utilisateurs du locataire ou activer le consentement de l’utilisateur pour votre application spécifique.