Een Microsoft Entra toepassingsregistratie maken in Azure Data Explorer
Microsoft Entra toepassingsverificatie wordt gebruikt voor toepassingen, zoals een service zonder toezicht of een geplande stroom, die toegang moeten hebben tot Azure Data Explorer zonder dat er een gebruiker aanwezig is. Als u verbinding maakt met een Azure Data Explorer-database met behulp van een toepassing, zoals een web-app, moet u verifiëren met behulp van verificatie van de service-principal. In dit artikel wordt beschreven hoe u een Microsoft Entra service-principal maakt en registreert en deze vervolgens autoriseert voor toegang tot een Azure Data Explorer-database.
Registratie van Microsoft Entra toepassing maken
Microsoft Entra toepassingsverificatie vereist het maken en registreren van een toepassing met Microsoft Entra ID. Er wordt automatisch een service-principal gemaakt wanneer de toepassingsregistratie wordt gemaakt in een Microsoft Entra-tenant.
De app-registratie kan worden gemaakt in de Azure Portal of programmatisch met Azure CLI. Kies het tabblad dat bij uw scenario past.
De app registreren
Meld u aan bij Azure Portal en open de blade Microsoft Entra ID.
Blader naar App-registraties en selecteer Nieuwe registratie.
Geef de toepassing een naam, bijvoorbeeld 'example-app'.
Kies een ondersteund accounttype, dat bepaalt wie de toepassing kan gebruiken.
Kies onder Omleidings-URIWeb voor het type toepassing dat u wilt maken. De URI is optioneel en wordt in dit geval leeg gelaten.
Selecteer Registreren.
Verificatie instellen
Er zijn twee typen verificatie beschikbaar voor service-principals: verificatie op basis van een wachtwoord (toepassingswachtwoord) en verificatie op basis van een certificaat. In de volgende sectie wordt het gebruik van verificatie op basis van een wachtwoord voor de referenties van de toepassing beschreven. U kunt ook een X509-certificaat gebruiken om uw toepassing te verifiëren. Zie How to configure Microsoft Entra certificate-based authentication (Verificatie op basis van certificaten configureren) voor meer informatie.
In deze sectie kopieert u de volgende waarden: Toepassings-id en sleutelwaarde. Plak deze waarden ergens, zoals een teksteditor, voor gebruik in de stap clientreferenties configureren in de database.
Blader naar de blade Overzicht .
Kopieer de toepassings-id (client) en de map-id (tenant).
Notitie
U hebt de toepassings-id en de tenant-id nodig om de service-principal toegang te verlenen tot de database.
Selecteer op de blade Certificaten & geheimende optie Nieuw clientgeheim.
Voer een beschrijving en verloopdatum in.
Selecteer Toevoegen.
Kopieer de sleutelwaarde.
Notitie
Wanneer u deze pagina verlaat, is de sleutelwaarde niet toegankelijk.
U hebt uw Microsoft Entra toepassing en service-principal gemaakt.
Gedelegeerde machtigingen configureren voor de toepassing - optioneel
Als uw toepassing toegang moet hebben tot uw database met behulp van de referenties van de aanroepende gebruiker, configureert u gedelegeerde machtigingen voor uw toepassing. Bijvoorbeeld als u een web-API bouwt en u wilt verifiëren met behulp van de referenties van de gebruiker die uw API aanroept .
Als u alleen toegang nodig hebt tot een geautoriseerde gegevensresource, kunt u deze sectie overslaan en doorgaan met Het verlenen van toegang tot de database aan een service-principal.
Blader naar de blade API-machtigingen van uw app-registratie.
Selecteer Een machtiging toevoegen.
Selecteer API's die in mijn organisatie worden gebruikt.
Zoek en selecteer Azure Data Explorer.
Selecteer in Gedelegeerde machtigingen het vak user_impersonation .
Selecteer Machtigingen toevoegen.
Een service-principal toegang verlenen tot de database
Zodra de toepassingsregistratie is gemaakt, moet u de bijbehorende service-principal toegang verlenen tot uw database. In het volgende voorbeeld krijgt de kijker toegang. Zie Databasemachtigingen beheren voor andere rollen.
Gebruik de waarden van Toepassings-id en Tenant-id die u in een vorige stap hebt gekopieerd.
Voer de volgende opdracht uit in uw query-editor en vervang de tijdelijke aanduidingen ApplicationID en TenantID door uw werkelijke waarden:
.add database <DatabaseName> viewers ('aadapp=<ApplicationID>;<TenantID>') '<Notes>'
Bijvoorbeeld:
.add database Logs viewers ('aadapp=1234abcd-e5f6-g7h8-i9j0-1234kl5678mn;9876abcd-e5f6-g7h8-i9j0-1234kl5678mn') 'App Registration'
De laatste parameter is een tekenreeks die als notities wordt weergegeven wanneer u een query uitvoert op de rollen die zijn gekoppeld aan een database.
Notitie
Na het maken van de toepassingsregistratie kan er enkele minuten vertraging zijn totdat er naar kan worden verwezen. Als er een foutbericht wordt weergegeven dat de toepassing niet is gevonden, wacht u en probeert u het opnieuw.
Zie Op rollen gebaseerd toegangsbeheer voor meer informatie over rollen.
Toepassingsreferenties gebruiken voor toegang tot een database
Gebruik de toepassingsreferenties om programmatisch toegang te krijgen tot uw database met behulp van de clientbibliotheek.
. . .
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}");
Notitie
Geef de toepassings-id en sleutel op van de toepassingsregistratie (service-principal) die u eerder hebt gemaakt.
Zie Verificatie met Microsoft Authentication Library (MSAL) in apps en Azure Key Vault gebruiken met .NET Core-web-app voor meer informatie.
Problemen oplossen
Ongeldige resourcefout
Als uw toepassing wordt gebruikt voor het verifiëren van gebruikers of toepassingen voor toegang, moet u gedelegeerde machtigingen instellen voor de servicetoepassing. Declareer dat uw toepassing gebruikers of toepassingen kan verifiëren voor toegang. Als u dit niet doet, resulteert dit in een fout die vergelijkbaar is met de volgende, wanneer een verificatiepoging wordt uitgevoerd:
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...
U moet de instructies volgen om gedelegeerde machtigingen voor de toepassing te configureren.
Fout bij het inschakelen van gebruikerstoestemming
Uw Microsoft Entra tenantbeheerder kan een beleid instellen dat voorkomt dat tenantgebruikers toestemming geven aan toepassingen. Deze situatie resulteert in een fout die vergelijkbaar is met de volgende, wanneer een gebruiker zich probeert aan te melden bij uw toepassing:
AADSTS65001: The user or administrator has not consented to use the application with ID '<App ID>' named 'App Name'
U moet contact opnemen met uw Microsoft Entra-beheerder om toestemming te verlenen aan alle gebruikers in de tenant of om gebruikerstoestemming in te schakelen voor uw specifieke toepassing.