Tworzenie rejestracji aplikacji Microsoft Entra w usłudze Azure Data Explorer

Microsoft Entra uwierzytelnianie aplikacji 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 opisano sposób tworzenia i rejestrowania jednostki usługi Microsoft Entra, a następnie autoryzowania jej dostępu do bazy danych usługi Azure Data Explorer.

Tworzenie rejestracji aplikacji Microsoft Entra

Microsoft Entra uwierzytelnianie aplikacji wymaga utworzenia i zarejestrowania aplikacji przy użyciu Tożsamość Microsoft Entra. Jednostka usługi jest tworzona automatycznie po utworzeniu rejestracji aplikacji w dzierżawie Microsoft Entra.

Rejestrację aplikacji można utworzyć w Azure Portal lub programowo za pomocą interfejsu wiersza polecenia platformy Azure. Wybierz kartę pasującą do scenariusza.

Rejestrowanie aplikacji

  1. Zaloguj się do Azure Portal i otwórz blok Tożsamość Microsoft Entra.

  2. Przejdź do Rejestracje aplikacji i wybierz pozycję Nowa rejestracja.

    Zrzut ekranu przedstawiający sposób uruchamiania nowej rejestracji aplikacji.

  3. Nazwij aplikację, na przykład "example-app".

  4. Wybierz obsługiwany typ konta, który określa, kto może korzystać z aplikacji.

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

    Zrzut ekranu przedstawiający sposób rejestrowania nowej rejestracji aplikacji.

  6. 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 Microsoft Entra.

W trakcie tej sekcji skopiujesz następujące wartości: Identyfikator aplikacji i wartość klucza. Wklej te wartości w dowolnym miejscu, podobnie jak edytor tekstów, do użycia w kroku konfigurowanie poświadczeń klienta do bazy danych.

  1. Przejdź do bloku Przegląd .

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

  3. W bloku Certyfikaty & wpisów tajnych wybierz pozycję Nowy klucz tajny klienta.

    Zrzut ekranu przedstawiający sposób uruchamiania tworzenia wpisu tajnego klienta.

  4. Wprowadź opis i wygaśnięcie.

  5. Wybierz pozycję Dodaj.

  6. Skopiuj wartość klucza.

    Uwaga

    Po opuszczeniu tej strony wartość klucza nie będzie dostępna.

Utworzono aplikację Microsoft Entra i jednostkę usługi.

Konfigurowanie uprawnień delegowanych dla aplikacji — opcjonalne

Jeśli aplikacja musi uzyskać dostęp do bazy danych przy użyciu poświadczeń wywołującego użytkownika, 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.

  1. Przejdź do bloku uprawnień interfejsu APIrejestracji aplikacji.

  2. Wybierz pozycję Dodaj uprawnienie.

  3. Wybierz pozycję Interfejsy API używane przez moją organizację.

  4. Wyszukaj i wybierz pozycję Azure Data Explorer.

    Zrzut ekranu przedstawiający sposób dodawania uprawnień interfejsu API usługi Azure Data Explorer.

  5. W obszarze Uprawnienia delegowane wybierz pole user_impersonation .

  6. Wybierz pozycję Dodaj uprawnienia.

    Zrzut ekranu przedstawiający sposób wybierania uprawnień delegowanych przy użyciu personifikacji użytkownika.

Udzielanie jednostce usługi dostępu do bazy danych

Po utworzeniu rejestracji aplikacji musisz udzielić odpowiedniego dostępu jednostki usługi 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.

  1. Użyj wartości identyfikatora aplikacji i identyfikatora dzierżawy skopiowanych w poprzednim kroku.

  2. Wykonaj następujące polecenie w edytorze zapytań, zastępując wartości zastępcze 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, dopóki nie będzie można odwoływać się do niej. Jeśli zostanie wyświetlony 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

Nieprawidłowy błąd 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. Deklarowanie aplikacji 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ć uprawnienia delegowane dla aplikacji.

Administrator dzierżawy 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 Microsoft Entra, aby udzielić zgody wszystkim użytkownikom w dzierżawie lub włączyć zgodę użytkownika dla określonej aplikacji.