Uwierzytelnianie platformy Azure przy użyciu poświadczeń użytkownika

W tym artykule opisano, jak biblioteka tożsamości platformy Azure obsługuje uwierzytelnianie tokenu entra firmy Microsoft przy użyciu poświadczeń dostarczonych przez użytkownika. Ta obsługa jest możliwa za pomocą zestawu implementacji TokenCredential omówionych w tym artykule.

W tym artykule omówiono następujące tematy:

Aby rozwiązać problemy z uwierzytelnianiem poświadczeń użytkownika, zobacz Rozwiązywanie problemów z uwierzytelnianiem poświadczeń użytkownika.

Poświadczenia kodu urządzenia

Poświadczenie kodu urządzenia interaktywnie uwierzytelnia użytkownika na urządzeniach przy użyciu ograniczonego interfejsu użytkownika. Działa to przez monitowanie użytkownika o wizytę adresu URL logowania na maszynie z obsługą przeglądarki, gdy aplikacja próbuje się uwierzytelnić. Następnie użytkownik wprowadza kod urządzenia wymieniony w instrukcjach wraz z poświadczeniami logowania. Po pomyślnym uwierzytelnieniu aplikacja, która zażądała uwierzytelnienia, zostanie pomyślnie uwierzytelniona na urządzeniu, na którym jest uruchomiona.

Aby uzyskać więcej informacji, zobacz Platforma tożsamości Microsoft i przepływ udzielania autoryzacji urządzenia OAuth 2.0.

Włączanie aplikacji dla przepływu kodu urządzenia

Aby uwierzytelnić użytkownika za pośrednictwem przepływu kodu urządzenia, wykonaj następujące czynności:

  1. Przejdź do pozycji Microsoft Entra ID w witrynie Azure Portal i znajdź rejestrację aplikacji.
  2. Przejdź do sekcji Uwierzytelnianie .
  3. W obszarze Sugerowane identyfikatory URI przekierowania sprawdź identyfikator URI kończący się ciągiem /common/oauth2/nativeclient.
  4. W obszarze Domyślny typ klienta wybierz wartość yes .Treat application as a public client

Te kroki umożliwiają aplikacji uwierzytelnianie, ale nadal nie ma uprawnień do logowania się do identyfikatora Entra firmy Microsoft ani uzyskiwania dostępu do zasobów w Twoim imieniu. Aby rozwiązać ten problem, przejdź do pozycji Uprawnienia interfejsu API i włącz program Microsoft Graph i zasoby, do których chcesz uzyskać dostęp, na przykład key vault.

Musisz również być administratorem dzierżawy, aby wyrazić zgodę na aplikację podczas pierwszego logowania.

Jeśli nie możesz skonfigurować opcji przepływu kodu urządzenia w identyfikatorze Entra firmy Microsoft, może to wymagać, aby aplikacja była wielodostępna. Aby ustawić aplikację w wielu dzierżawach, przejdź do panelu Uwierzytelnianie , a następnie wybierz pozycję Konta w dowolnym katalogu organizacyjnym. Następnie wybierz pozycję Tak w polu Traktuj aplikację jako klienta publicznego.

Uwierzytelnianie konta użytkownika za pomocą przepływu kodu urządzenia

W poniższym przykładzie pokazano uwierzytelnianie SecretClient z biblioteki klienta wpisu tajnego usługi Azure Key Vault dla języka Java przy użyciu DeviceCodeCredential elementu na urządzeniu IoT.

/**
 * Authenticate with device code credential.
 */
DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
    .challengeConsumer(challenge -> {
    // Lets the user know about the challenge.
    System.out.println(challenge.getMessage());
    }).build();

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your Key Vault name>.vault.azure.net")
    .credential(deviceCodeCredential)
    .buildClient();

Poświadczenia interakcyjnej przeglądarki

To poświadczenie interaktywnie uwierzytelnia użytkownika przy użyciu domyślnej przeglądarki systemowej i oferuje bezproblemowe środowisko uwierzytelniania, umożliwiając uwierzytelnianie aplikacji przy użyciu własnych poświadczeń.

Włączanie aplikacji dla przepływu OAuth 2 przeglądarki interakcyjnej

Aby użyć InteractiveBrowserCredentialusługi , musisz zarejestrować aplikację w identyfikatorze Entra firmy Microsoft z uprawnieniami do logowania się w imieniu użytkownika. Wykonaj poprzednie kroki przepływu kodu urządzenia, aby zarejestrować aplikację. Jak wspomniano wcześniej, administrator dzierżawy musi wyrazić zgodę na aplikację, zanim każde konto użytkownika będzie mogły się zalogować.

W pliku może być InteractiveBrowserCredentialBuilderwymagany adres URL przekierowania. Dodaj adres URL przekierowania do podsekcji Identyfikatory URI przekierowania w sekcji Uwierzytelnianie zarejestrowanej aplikacji firmy Microsoft Entra.

Interakcyjne uwierzytelnianie konta użytkownika w przeglądarce

W poniższym przykładzie pokazano uwierzytelnianie SecretClient z biblioteki klienta azure-security-keyvault-secrets przy użyciu polecenia InteractiveBrowserCredential.

/**
 * Authenticate interactively in the browser.
 */
InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
    .clientId("<your app client ID>")
    .redirectUrl("YOUR_APP_REGISTERED_REDIRECT_URL")
    .build();

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your Key Vault name>.vault.azure.net")
    .credential(interactiveBrowserCredential)
    .buildClient();

Poświadczenia hasła nazwy użytkownika

Program UsernamePasswordCredential ułatwia uwierzytelnianie publicznej aplikacji klienckiej przy użyciu poświadczeń użytkownika, które nie wymagają uwierzytelniania wieloskładnikowego. W poniższym przykładzie pokazano uwierzytelnianie SecretClient z biblioteki klienta azure-security-keyvault-secrets przy użyciu polecenia UsernamePasswordCredential. Użytkownik nie może mieć włączonego uwierzytelniania wieloskładnikowego.

/**
 * Authenticate with username, password.
 */
UsernamePasswordCredential usernamePasswordCredential = new UsernamePasswordCredentialBuilder()
    .clientId("<your app client ID>")
    .username("<your username>")
    .password("<your password>")
    .build();

// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your Key Vault name>.vault.azure.net")
    .credential(usernamePasswordCredential)
    .buildClient();

Aby uzyskać więcej informacji, zobacz Platforma tożsamości Microsoft i poświadczenia hasła właściciela zasobu OAuth 2.0.

Następne kroki

W tym artykule opisano uwierzytelnianie przy użyciu poświadczeń użytkownika. Ta forma uwierzytelniania jest jednym z wielu sposobów uwierzytelniania w zestawie Azure SDK dla języka Java. W poniższych artykułach opisano inne sposoby:

Jeśli wystąpią problemy związane z uwierzytelnianiem poświadczeń użytkownika, zobacz Rozwiązywanie problemów z uwierzytelnianiem poświadczeń użytkownika.

Po opanowaniu uwierzytelniania zobacz Konfigurowanie rejestrowania w zestawie Azure SDK dla języka Java , aby uzyskać informacje na temat funkcji rejestrowania udostępnianych przez zestaw SDK.