Udostępnij za pośrednictwem


Uwierzytelnianie platformy Azure w środowiskach deweloperskich Java

Ten artykuł zawiera omówienie obsługi biblioteki tożsamości platformy Azure na potrzeby uwierzytelniania tokenów entra firmy Microsoft. Ta obsługa umożliwia uwierzytelnianie aplikacji działających lokalnie na maszynach deweloperskich za pomocą zestawu TokenCredential implementacji.

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

Aby rozwiązać problemy z uwierzytelnianiem środowiska deweloperskiego, zobacz Rozwiązywanie problemów z uwierzytelnianiem środowiska deweloperskiego.

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 pozycję Tak w polu Traktuj aplikację jako klienta publicznego.

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.

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 azure-security-keyvault-secrets przy użyciu DeviceCodeCredential elementu na urządzeniu IoT.

DeviceCodeCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
  .challengeConsumer(challenge -> {
    // lets user know of 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 wcześniejsze 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ć.

Możesz zauważyć, że w pliku InteractiveBrowserCredentialBuilderwymagany jest 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.

InteractiveBrowserCredential interactiveBrowserCredential = new InteractiveBrowserCredentialBuilder()
  .clientId("<your client ID>")
  .redirectUrl("http://localhost:8765")
  .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 interfejsu wiersza polecenia platformy Azure

Poświadczenie interfejsu wiersza polecenia platformy Azure uwierzytelnia się w środowisku projektowym przy użyciu włączonego użytkownika lub jednostki usługi w interfejsie wiersza polecenia platformy Azure. Używa interfejsu wiersza polecenia platformy Azure, biorąc pod uwagę użytkownika, który jest już do niego zalogowany, i używa interfejsu wiersza polecenia do uwierzytelniania aplikacji pod adresem Microsoft Entra ID.

Logowanie się za pomocą interfejsu wiersza polecenia platformy Azure dla usługi AzureCliCredential

Zaloguj się jako użytkownik przy użyciu następującego polecenia interfejsu wiersza polecenia platformy Azure:

az login

Zaloguj się jako jednostka usługi przy użyciu następującego polecenia:

az login \
    --service-principal \
    --username <client-ID> \
    --password <client-secret> \
    --tenant <tenant-ID>

Jeśli konto lub jednostka usługi ma dostęp do wielu dzierżaw, upewnij się, że żądana dzierżawa lub subskrypcja ma stan "Włączone" w danych wyjściowych następującego polecenia:

az account list

Przed użyciem AzureCliCredential w kodzie uruchom następujące polecenie, aby sprawdzić, czy konto zostało pomyślnie skonfigurowane.

az account get-access-token

Może być konieczne powtórzenie tego procesu po upływie określonego czasu, w zależności od ważności tokenu odświeżania w organizacji. Zazwyczaj okres ważności tokenu odświeżania wynosi od kilku tygodni do kilku miesięcy. AzureCliCredential monituje o ponowne zalogowanie.

Uwierzytelnianie konta użytkownika za pomocą interfejsu wiersza polecenia platformy Azure

W poniższym przykładzie pokazano uwierzytelnianie SecretClient z biblioteki klienta azure-security-keyvault-secrets przy użyciu AzureCliCredential stacji roboczej z zainstalowanym i zalogowanym interfejsem wiersza polecenia platformy Azure.

AzureCliCredential cliCredential = new AzureCliCredentialBuilder().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(cliCredential)
  .buildClient();

Poświadczenia intelliJ

Poświadczenie IntelliJ uwierzytelnia się w środowisku projektowym przy użyciu konta w zestawie narzędzi Azure Toolkit for IntelliJ. Używa on informacji o zalogowanym użytkowniku w środowisku IDE IntelliJ i używa go do uwierzytelniania aplikacji pod kątem identyfikatora Entra firmy Microsoft.

Logowanie się do zestawu narzędzi Azure Toolkit for IntelliJ for IntelliJCredential

Aby się zalogować, wykonaj następujące kroki:

  1. W oknie IntelliJ otwórz plik > Ustawienia > Plugins.
  2. Wyszukaj ciąg "Azure Toolkit for IntelliJ" w witrynie Marketplace. Zainstaluj i uruchom ponownie środowisko IDE.
  3. Znajdowanie nowego elementu menu Narzędzia > do logowania platformy Azure na platformie Azure >
  4. Logowanie do urządzenia pomaga zalogować się jako konto użytkownika. Postępuj zgodnie z instrukcjami, aby zalogować się w witrynie login.microsoftonline.com internetowej przy użyciu kodu urządzenia. IntelliJ monituje o wybranie subskrypcji. Wybierz subskrypcję z zasobami, do których chcesz uzyskać dostęp.

W systemie Windows potrzebna jest również ścieżka bazy danych KeePass do odczytu poświadczeń intelliJ. Ścieżkę można znaleźć w ustawieniach funkcji IntelliJ w obszarze Plik > Ustawienia > Wygląd i zachowanie > systemu Ustawienia > hasła. Zanotuj lokalizację ścieżki KeePassDatabase.

Uwierzytelnianie konta użytkownika za pomocą środowiska IntelliJ IDEA

W poniższym przykładzie pokazano uwierzytelnianie SecretClient z biblioteki klienta azure-security-keyvault-secrets przy użyciu stacji roboczej, na której zainstalowano środowisko IntelliJ IDEA, a użytkownik zalogował się przy użyciu IntelliJCredential konta platformy Azure.

IntelliJCredential intelliJCredential = new IntelliJCredentialBuilder()
  // KeePass configuration isrequired only for Windows. No configuration needed for Linux / Mac.
  .keePassDatabasePath("C:\\Users\\user\\AppData\\Roaming\\JetBrains\\IdeaIC2020.1\\c.kdbx")
  .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(intelliJCredential)
  .buildClient();

Poświadczenia programu Visual Studio Code

Poświadczenie programu Visual Studio Code umożliwia uwierzytelnianie w środowiskach deweloperskich, w których program VS Code jest instalowany z rozszerzeniem konta platformy Azure programu VS Code. Używa on informacji o zalogowanym użytkowniku w środowisku IDE programu VS Code i używa go do uwierzytelniania aplikacji pod kątem identyfikatora Entra firmy Microsoft.

Logowanie się do rozszerzenia konta platformy Azure programu Visual Studio Code dla programu VisualStudioCodeCredential

Integracja Nn z rozszerzeniem konta platformy Azure obsługuje uwierzytelnianie programu Visual Studio Code. Aby użyć tej formy uwierzytelniania, zainstaluj rozszerzenie konta platformy Azure, a następnie użyj opcji Wyświetl paletępoleceń, aby wykonać polecenie Azure: Sign In>. To polecenie otwiera okno przeglądarki i wyświetla stronę, która umożliwia zalogowanie się na platformie Azure. Po zakończeniu procesu logowania możesz zamknąć przeglądarkę zgodnie z zaleceniami. Uruchomienie aplikacji (w debugerze lub w dowolnym miejscu na maszynie dewelopera) używa poświadczeń z logowania.

Uwierzytelnianie konta użytkownika za pomocą programu Visual Studio Code

W poniższym przykładzie pokazano uwierzytelnianie SecretClient z biblioteki klienta azure-security-keyvault-secrets przy użyciu stacji roboczej, na której jest zainstalowany program Visual Studio Code, a użytkownik zalogował się przy użyciu VisualStudioCodeCredential konta platformy Azure.

VisualStudioCodeCredential visualStudioCodeCredential = new VisualStudioCodeCredentialBuilder().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(visualStudioCodeCredential)
  .buildClient();

Następne kroki

W tym artykule opisano uwierzytelnianie podczas programowania przy użyciu poświadczeń dostępnych na komputerze. 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 środowiska deweloperskiego, zobacz Rozwiązywanie problemów z uwierzytelnianiem środowiska deweloperskiego.

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.