Vytvoření registrace aplikace Microsoft Entra v Azure Data Exploreru
Ověřování aplikací Microsoft Entra se používá pro aplikace, jako je bezobslužná služba nebo naplánovaný tok, které potřebují přístup k Azure Data Exploreru bez přítomnosti uživatele. Pokud se připojujete k databázi Azure Data Exploreru pomocí aplikace, jako je webová aplikace, měli byste se ověřit pomocí ověřování instančního objektu. Tento článek podrobně popisuje, jak vytvořit a zaregistrovat instanční objekt Microsoft Entra a pak ho autorizovat pro přístup k databázi Azure Data Exploreru.
Vytvoření registrace aplikace Microsoft Entra
Ověřování aplikace Microsoft Entra vyžaduje vytvoření a registraci aplikace s ID Microsoft Entra. Instanční objekt se automaticky vytvoří při vytvoření registrace aplikace v tenantovi Microsoft Entra.
Registraci aplikace je možné vytvořit buď na webu Azure Portal, nebo programově pomocí Azure CLI. Zvolte kartu, která odpovídá vašemu scénáři.
Registrace aplikace
Přihlaste se k webu Azure Portal a otevřete okno Microsoft Entra ID .
Přejděte na Registrace aplikací a vyberte Nová registrace.
Pojmenujte aplikaci, například example-app.
Vyberte podporovaný typ účtu, který určuje, kdo může aplikaci používat.
V části Identifikátor URI přesměrování vyberte web pro typ aplikace, kterou chcete vytvořit. Identifikátor URI je volitelný a v tomto případě zůstane prázdný.
Vyberte Zaregistrovat.
Nastavení ověřování
Pro instanční objekty jsou k dispozici dva typy ověřování: ověřování pomocí hesla (tajný klíč aplikace) a ověřování pomocí certifikátů. Následující část popisuje použití ověřování na základě hesla pro přihlašovací údaje aplikace. K ověření aplikace můžete případně použít certifikát X509. Další informace naleznete v tématu Konfigurace ověřování založeného na certifikátech společnosti Microsoft Entra.
V této části zkopírujete následující hodnoty: ID aplikace a hodnota klíče. Tyto hodnoty vložte někam, jako je textový editor, pro použití v kroku konfigurace přihlašovacích údajů klienta pro databázi.
Přejděte do okna Přehled .
Zkopírujte ID aplikace (klienta) a ID adresáře (tenanta).
Poznámka:
K autorizaci instančního objektu pro přístup k databázi budete potřebovat ID aplikace a ID tenanta.
V okně Certifikáty a tajné kódy vyberte Nový tajný klíč klienta.
Zadejte popis a vypršení platnosti.
Vyberte Přidat.
Hodnotu klíče si zkopírujte.
Poznámka:
Když opustíte tuto stránku, nebude hodnota klíče přístupná.
Vytvořili jste aplikaci Microsoft Entra a instanční objekt.
Konfigurace delegovaných oprávnění pro aplikaci – volitelné
Pokud vaše aplikace potřebuje přístup k databázi pomocí přihlašovacích údajů volajícího uživatele, nakonfigurujte delegovaná oprávnění pro vaši aplikaci. Pokud například vytváříte webové rozhraní API a chcete se ověřit pomocí přihlašovacích údajů uživatele, který volá vaše rozhraní API.
Pokud potřebujete přístup jenom k autorizovanému datovému prostředku, můžete tuto část přeskočit a dál udělit instančnímu objektu přístup k databázi.
Přejděte do okna oprávnění rozhraní API vaší registrace aplikace.
Vyberte Přidat oprávnění.
Vyberte Rozhraní API, která používá moje organizace.
Vyhledejte a vyberte Azure Data Explorer.
V části Delegovaná oprávnění vyberte pole user_impersonation .
Vyberte Přidat oprávnění.
Udělení přístupu instančního objektu k databázi
Po vytvoření registrace aplikace je potřeba udělit odpovídající přístup instančního objektu k vaší databázi. Následující příklad poskytuje přístup k prohlížeči. Další role najdete v tématu Správa oprávnění k databázi.
Použijte hodnoty ID aplikace a ID tenanta, které jste si zkopírovali v předchozím kroku.
V editoru dotazů spusťte následující příkaz a nahraďte zástupné hodnoty ApplicationID a TenantID skutečnými hodnotami:
.add database <DatabaseName> viewers ('aadapp=<ApplicationID>;<TenantID>') '<Notes>'
Příklad:
.add database Logs viewers ('aadapp=1234abcd-e5f6-g7h8-i9j0-1234kl5678mn;9876abcd-e5f6-g7h8-i9j0-1234kl5678mn') 'App Registration'
Poslední parametr je řetězec, který se zobrazí jako poznámky při dotazování rolí přidružených k databázi.
Poznámka:
Po vytvoření registrace aplikace může docházet k několikaminutové prodlevě, dokud na ni nebude možné odkazovat. Pokud se zobrazí chyba, že aplikace nebyla nalezena, počkejte a zkuste to znovu.
Další informace o rolích najdete v tématu Řízení přístupu na základě role.
Použití přihlašovacích údajů aplikace pro přístup k databázi
Pomocí přihlašovacích údajů aplikace můžete přistupovat k databázi prostřednictvím kódu programu pomocí klientské knihovny.
. . .
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}");
Poznámka:
Zadejte ID aplikace a klíč registrace aplikace (instančního objektu), které jste vytvořili dříve.
Další informace najdete v tématu Ověřování pomocí knihovny MICROSOFT Authentication Library (MSAL) v aplikacích a použití služby Azure Key Vault s webovou aplikací .NET Core.
Řešení problému
Chyba neplatného prostředku
Pokud se vaše aplikace používá k ověřování uživatelů nebo aplikací pro přístup, musíte pro aplikaci služby nastavit delegovaná oprávnění. Deklarujte, že vaše aplikace může ověřovat uživatele nebo aplikace pro přístup. Když se provede pokus o ověření, výsledkem bude chyba podobná následující:
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...
Budete muset postupovat podle pokynů ke konfiguraci delegovaných oprávnění pro aplikaci.
Chyba povolení souhlasu uživatele
Váš správce tenanta Microsoft Entra může přijmout zásady, které uživatelům tenanta brání v udělení souhlasu s aplikacemi. Tato situace způsobí chybu podobnou této situaci, když se uživatel pokusí přihlásit k vaší aplikaci:
AADSTS65001: The user or administrator has not consented to use the application with ID '<App ID>' named 'App Name'
Pokud chcete udělit souhlas všem uživatelům v tenantovi, musíte kontaktovat správce Microsoft Entra nebo povolit souhlas uživatele pro vaši konkrétní aplikaci.