Dela via


Skapa en Microsoft Entra programregistrering i Azure Data Explorer

Microsoft Entra programautentisering används för program, till exempel en obevakad tjänst eller ett schemalagt flöde, som behöver åtkomst till Azure Data Explorer utan att en användare finns. Om du ansluter till en Azure Data Explorer-databas med hjälp av ett program, till exempel en webbapp, bör du autentisera med autentisering av tjänstens huvudnamn. Den här artikeln beskriver hur du skapar och registrerar ett Microsoft Entra tjänstens huvudnamn och sedan auktoriserar det för åtkomst till en Azure Data Explorer-databas.

Skapa Microsoft Entra programregistrering

Microsoft Entra programautentisering kräver att du skapar och registrerar ett program med Microsoft Entra ID. Ett huvudnamn för tjänsten skapas automatiskt när programregistreringen skapas i en Microsoft Entra klientorganisation.

Appregistreringen kan antingen skapas i Azure Portal eller programmatiskt med Azure CLI. Välj den flik som passar ditt scenario.

Registrera appen

  1. Logga in på Azure Portal och öppna bladet Microsoft Entra ID.

  2. Bläddra till Appregistreringar och välj Ny registrering.

    Skärmbild som visar hur du startar en ny appregistrering.

  3. Ge programmet ett namn, till exempel "example-app".

  4. Välj en kontotyp som stöds, som avgör vem som kan använda programmet.

  5. Under Omdirigerings-URI väljer du Webb för den typ av program som du vill skapa. URI:n är valfri och lämnas tom i det här fallet.

    Skärmbild som visar hur du registrerar en ny appregistrering.

  6. Välj Register (Registrera).

Konfigurera autentisering

Det finns två typer av autentisering för tjänsthuvudnamn: lösenordsbaserad autentisering (programhemlighet) och certifikatbaserad autentisering. I följande avsnitt beskrivs hur du använder en lösenordsbaserad autentisering för programmets autentiseringsuppgifter. Du kan också använda ett X509-certifikat för att autentisera ditt program. Mer information finns i Konfigurera Microsoft Entra certifikatbaserad autentisering.

Under det här avsnittet kopierar du följande värden: Program-ID och nyckelvärde. Klistra in dessa värden någonstans, till exempel en textredigerare, för användning i steget konfigurera klientens autentiseringsuppgifter till databasen.

  1. Bläddra till bladet Översikt .

  2. Kopiera program-ID:t (klient) och katalog-ID:t (klientorganisationen).

    Anteckning

    Du behöver program-ID:t och klientorganisations-ID:t för att ge tjänstens huvudnamn åtkomst till databasen.

  3. På bladet Certifikat & hemligheter väljer du Ny klienthemlighet.

    Skärmbild som visar hur du börjar skapa en klienthemlighet.

  4. Ange en beskrivning och förfallotid.

  5. Välj Lägg till.

  6. Kopiera nyckelvärdet.

    Anteckning

    När du lämnar den här sidan är nyckelvärdet inte tillgängligt.

Du har skapat ditt Microsoft Entra-program och tjänstens huvudnamn.

Konfigurera delegerade behörigheter för programmet – valfritt

Om ditt program behöver åtkomst till databasen med autentiseringsuppgifterna för den anropande användaren konfigurerar du delegerade behörigheter för ditt program. Om du till exempel skapar ett webb-API och vill autentisera med autentiseringsuppgifterna för den användare som anropar ditt API.

Om du bara behöver åtkomst till en auktoriserad dataresurs kan du hoppa över det här avsnittet och fortsätta att bevilja tjänstens huvudnamn åtkomst till databasen.

  1. Bläddra till bladet API-behörigheter i appregistreringen.

  2. Välj Lägg till en behörighet.

  3. Välj API:er som min organisation använder.

  4. Sök efter och välj Azure Data Explorer.

    Skärmbild som visar hur du lägger till Azure Data Explorer API-behörighet.

  5. I Delegerade behörigheter väljer du rutan user_impersonation .

  6. Välj Lägg till behörigheter.

    Skärmbild som visar hur du väljer delegerade behörigheter med användarpersonifiering.

Bevilja tjänstens huvudnamn åtkomst till databasen

När programregistreringen har skapats måste du ge motsvarande tjänsthuvudnamn åtkomst till databasen. I följande exempel får läsaren åtkomst. Andra roller finns i Hantera databasbehörigheter.

  1. Använd värdena för Program-ID och Klientorganisations-ID som kopierades i ett tidigare steg.

  2. Kör följande kommando i frågeredigeraren och ersätt platshållarvärdena ApplicationID och TenantID med dina faktiska värden:

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

    Exempel:

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

    Den sista parametern är en sträng som visas som anteckningar när du frågar efter de roller som är associerade med en databas.

    Anteckning

    När du har skapat programregistreringen kan det uppstå en fördröjning på flera minuter tills den kan refereras till. Om du får ett felmeddelande om att programmet inte hittas väntar du och försöker igen.

Mer information om roller finns i Rollbaserad åtkomstkontroll.

Använda programautentiseringsuppgifter för att komma åt en databas

Använd programmets autentiseringsuppgifter för att programmatiskt komma åt databasen med hjälp av klientbiblioteket.

. . .
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}");

Anteckning

Ange program-ID och nyckel för programregistreringen (tjänstens huvudnamn) som skapades tidigare.

Mer information finns i Autentisera med Microsoft Authentication Library (MSAL) i appar och använda Azure Key Vault med .NET Core-webbapp.

Felsökning

Ogiltigt resursfel

Om ditt program används för att autentisera användare eller program för åtkomst måste du konfigurera delegerade behörigheter för tjänstprogrammet. Deklarera att ditt program kan autentisera användare eller program för åtkomst. Om du inte gör det uppstår ett fel som liknar följande när ett autentiseringsförsök görs:

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...

Du måste följa anvisningarna för att konfigurera delegerade behörigheter för programmet.

Din Microsoft Entra klientorganisationsadministratör kan anta en princip som hindrar klientanvändare från att ge medgivande till program. Den här situationen resulterar i ett fel som liknar följande när en användare försöker logga in på ditt program:

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

Du måste kontakta din Microsoft Entra administratör för att bevilja medgivande för alla användare i klientorganisationen eller aktivera användarmedgivande för ditt specifika program.