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
Logga in på Azure Portal och öppna bladet Microsoft Entra ID.
Bläddra till Appregistreringar och välj Ny registrering.
Ge programmet ett namn, till exempel "example-app".
Välj en kontotyp som stöds, som avgör vem som kan använda programmet.
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.
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.
Bläddra till bladet Översikt .
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.
På bladet Certifikat & hemligheter väljer du Ny klienthemlighet.
Ange en beskrivning och förfallotid.
Välj Lägg till.
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.
Bläddra till bladet API-behörigheter i appregistreringen.
Välj Lägg till en behörighet.
Välj API:er som min organisation använder.
Sök efter och välj Azure Data Explorer.
I Delegerade behörigheter väljer du rutan user_impersonation .
Välj Lägg till behörigheter.
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.
Använd värdena för Program-ID och Klientorganisations-ID som kopierades i ett tidigare steg.
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.
Fel vid aktivering av användarmedgivande
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.