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:
- Poświadczenia kodu urządzenia
- Poświadczenia interakcyjnej przeglądarki
- Poświadczenia interfejsu wiersza polecenia platformy Azure
- Poświadczenia intelliJ
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:
- Przejdź do pozycji Microsoft Entra ID w witrynie Azure Portal i znajdź rejestrację aplikacji.
- Przejdź do sekcji Uwierzytelnianie .
- W obszarze Sugerowane identyfikatory URI przekierowania sprawdź identyfikator URI kończący się ciągiem
/common/oauth2/nativeclient
. - 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ć InteractiveBrowserCredential
usł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 InteractiveBrowserCredentialBuilder
wymagany 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:
- W oknie IntelliJ otwórz pozycję Wtyczki ustawień > plików>.
- Wyszukaj ciąg "Azure Toolkit for IntelliJ" w witrynie Marketplace. Zainstaluj i uruchom ponownie środowisko IDE.
- Znajdowanie nowego elementu menu Narzędzia > do logowania platformy Azure na platformie Azure >
- 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.
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 do zestawu narzędzi Azure Toolkit for IntelliJ.
IntelliJCredential intelliJCredential = new IntelliJCredentialBuilder()
.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();
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:
- Uwierzytelnianie aplikacji hostowanych na platformie Azure
- Uwierzytelnianie przy użyciu jednostek usługi
- Uwierzytelnianie przy użyciu poświadczeń użytkownika
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.