Tworzenie rejestracji aplikacji Microsoft Entra w usłudze Azure Data Explorer
Uwierzytelnianie aplikacji Entra firmy Microsoft jest używane w przypadku aplikacji, takich jak usługa nienadzorowana lub zaplanowany przepływ, który musi uzyskiwać dostęp do usługi Azure Data Explorer bez obecności użytkownika. Jeśli łączysz się z bazą danych usługi Azure Data Explorer przy użyciu aplikacji, takiej jak aplikacja internetowa, należy uwierzytelnić się przy użyciu uwierzytelniania jednostki usługi. W tym artykule szczegółowo opisano sposób tworzenia i rejestrowania jednostki usługi Microsoft Entra, a następnie autoryzowania jej w celu uzyskania dostępu do bazy danych usługi Azure Data Explorer.
Tworzenie rejestracji aplikacji Microsoft Entra
Uwierzytelnianie aplikacji Microsoft Entra wymaga utworzenia i zarejestrowania aplikacji przy użyciu identyfikatora Entra firmy Microsoft. Jednostka usługi jest tworzona automatycznie po utworzeniu rejestracji aplikacji w dzierżawie firmy Microsoft Entra.
Rejestrację aplikacji można utworzyć w witrynie Azure Portal lub programowo za pomocą interfejsu wiersza polecenia platformy Azure. Wybierz kartę pasującą do danego scenariusza.
Rejestrowanie aplikacji
Zaloguj się do witryny Azure Portal i otwórz blok Identyfikator entra firmy Microsoft.
Przejdź do Rejestracje aplikacji i wybierz pozycję Nowa rejestracja.
Nazwij aplikację, na przykład "example-app".
Wybierz obsługiwany typ konta, który określa, kto może korzystać z aplikacji.
W obszarze Identyfikator URI przekierowania wybierz pozycję Sieć Web dla typu aplikacji, którą chcesz utworzyć. Identyfikator URI jest opcjonalny i pozostaje pusty w tym przypadku.
Wybierz pozycję Zarejestruj.
Konfigurowanie uwierzytelniania
Istnieją dwa typy uwierzytelniania dostępne dla jednostek usługi: uwierzytelnianie oparte na hasłach (wpis tajny aplikacji) i uwierzytelnianie oparte na certyfikatach. W poniższej sekcji opisano używanie uwierzytelniania opartego na hasłach dla poświadczeń aplikacji. Możesz też użyć certyfikatu X509 do uwierzytelniania aplikacji. Aby uzyskać więcej informacji, zobacz Jak skonfigurować uwierzytelnianie oparte na certyfikatach firmy Microsoft.
W trakcie tej sekcji skopiujesz następujące wartości: Identyfikator aplikacji i wartość klucza. Wklej te wartości w dowolnym miejscu, na przykład edytor tekstów, aby użyć w kroku konfigurowania poświadczeń klienta do bazy danych.
Przejdź do bloku Przegląd .
Skopiuj identyfikator aplikacji (klienta) i identyfikator katalogu (dzierżawy).
Uwaga
Musisz mieć identyfikator aplikacji i identyfikator dzierżawy, aby autoryzować jednostkę usługi w celu uzyskania dostępu do bazy danych.
W bloku Certyfikaty i wpisy tajne wybierz pozycję Nowy klucz tajny klienta.
Wprowadź opis i wygaśnięcie.
Wybierz Dodaj.
Skopiuj wartość klucza.
Uwaga
Po opuszczeniu tej strony wartość klucza nie będzie dostępna.
Utworzono aplikację Microsoft Entra i jednostkę usługi.
Konfigurowanie delegowanych uprawnień dla aplikacji — opcjonalnie
Jeśli aplikacja musi uzyskać dostęp do bazy danych przy użyciu poświadczeń użytkownika wywołującego, skonfiguruj delegowane uprawnienia dla aplikacji. Jeśli na przykład tworzysz internetowy interfejs API i chcesz uwierzytelnić się przy użyciu poświadczeń użytkownika, który wywołuje interfejs API.
Jeśli potrzebujesz tylko dostępu do autoryzowanego zasobu danych, możesz pominąć tę sekcję i kontynuować udzielanie jednostce usługi dostępu do bazy danych.
Przejdź do bloku Uprawnień interfejsu API rejestracji aplikacji.
Wybierz Dodaj uprawnienie.
Wybierz Interfejsy API używane przez organizację.
Wyszukaj i wybierz pozycję Azure Data Explorer.
W obszarze Uprawnienia delegowane wybierz pole user_impersonation .
Wybierz Przyznaj uprawnienia.
Udzielanie jednostce usługi dostępu do bazy danych
Po utworzeniu rejestracji aplikacji należy udzielić odpowiedniemu jednostce usługi dostępu do bazy danych. Poniższy przykład zapewnia dostęp do przeglądarki. Aby uzyskać informacje o innych rolach, zobacz Zarządzanie uprawnieniami bazy danych.
Użyj wartości identyfikatora aplikacji i identyfikatora dzierżawy, które są kopiowane w poprzednim kroku.
Wykonaj następujące polecenie w edytorze zapytań, zastępując wartości symboli zastępczych ApplicationID i TenantID rzeczywistymi wartościami:
.add database <DatabaseName> viewers ('aadapp=<ApplicationID>;<TenantID>') '<Notes>'
Na przykład:
.add database Logs viewers ('aadapp=1234abcd-e5f6-g7h8-i9j0-1234kl5678mn;9876abcd-e5f6-g7h8-i9j0-1234kl5678mn') 'App Registration'
Ostatni parametr to ciąg, który jest wyświetlany jako notatki podczas wykonywania zapytań dotyczących ról skojarzonych z bazą danych.
Uwaga
Po utworzeniu rejestracji aplikacji może wystąpić kilka minut opóźnienia do momentu odwołania się do niej. Jeśli wystąpi błąd, że aplikacja nie zostanie znaleziona, zaczekaj i spróbuj ponownie.
Aby uzyskać więcej informacji na temat ról, zobacz Kontrola dostępu oparta na rolach.
Uzyskiwanie dostępu do bazy danych przy użyciu poświadczeń aplikacji
Użyj poświadczeń aplikacji, aby programowo uzyskać dostęp do bazy danych przy użyciu biblioteki klienta.
. . .
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}");
Uwaga
Określ identyfikator aplikacji i klucz utworzonej wcześniej rejestracji aplikacji (jednostki usługi).
Aby uzyskać więcej informacji, zobacz Jak uwierzytelniać się za pomocą biblioteki Microsoft Authentication Library (MSAL) w aplikacjach i używać usługi Azure Key Vault z aplikacją internetową platformy .NET Core.
Rozwiązywanie problemów
Błąd nieprawidłowego zasobu
Jeśli aplikacja jest używana do uwierzytelniania użytkowników lub aplikacji w celu uzyskania dostępu, musisz skonfigurować delegowane uprawnienia dla aplikacji usługi. Zadeklaruj, że aplikacja może uwierzytelniać użytkowników lub aplikacje w celu uzyskania dostępu. Nie spowoduje to wystąpienia błędu podobnego do następującego, gdy zostanie podjęta próba uwierzytelnienia:
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...
Należy postępować zgodnie z instrukcjami, aby skonfigurować delegowane uprawnienia dla aplikacji.
Błąd włączania zgody użytkownika
Administrator dzierżawy firmy Microsoft Entra może wprowadzić zasady uniemożliwiające użytkownikom dzierżawy wyrażanie zgody na aplikacje. Taka sytuacja spowoduje wystąpienie błędu podobnego do następującego, gdy użytkownik spróbuje zalogować się do aplikacji:
AADSTS65001: The user or administrator has not consented to use the application with ID '<App ID>' named 'App Name'
Musisz skontaktować się z administratorem firmy Microsoft Entra, aby udzielić zgody wszystkim użytkownikom w dzierżawie lub włączyć zgodę użytkownika dla określonej aplikacji.