Ověřování aplikací Java hostovaných v Azure
Tento článek popisuje, jak knihovna Identit Azure podporuje ověřování tokenů Microsoft Entra pro aplikace hostované v Azure. Tato podpora je možná prostřednictvím sady TokenCredential
implementací, které jsou popsány v tomto článku.
Tento článek se zabývá následujícími tématy:
Řešení potíží s ověřováním souvisejících s aplikacemi hostovanými v Azure najdete v tématu Řešení potíží s ověřováním aplikací hostovaných v Azure.
DefaultAzureCredential
DefaultAzureCredential
kombinuje přihlašovací údaje, které se běžně používají k ověřování při nasazení, s přihlašovacími údaji, které se používají k ověření ve vývojovém prostředí. Další informace naleznete v tématu DefaultAzureCredential přehled.
Konfigurace DefaultAzureCredential
DefaultAzureCredential
podporuje sadu konfigurací prostřednictvím setter v DefaultAzureCredentialBuilder
proměnných prostředí nebo proměnných prostředí.
- Nastavení proměnných
AZURE_CLIENT_ID
prostředí ,AZURE_CLIENT_SECRET
aAZURE_TENANT_ID
jak je definováno v proměnných prostředí konfigurujeDefaultAzureCredential
pro ověření jako instanční objekt určený hodnotami. - Nastavení
.managedIdentityClientId(String)
pro tvůrce nebo proměnnouAZURE_CLIENT_ID
prostředí se konfigurujeDefaultAzureCredential
tak, aby se ověřilo jako spravovaná identita přiřazená uživatelem, zatímco je prázdné, aby se ověřilo jako spravovaná identita přiřazená systémem. - Nastavení
.tenantId(String)
tvůrce nebo proměnnéAZURE_TENANT_ID
prostředí se konfigurujeDefaultAzureCredential
tak, aby se ověřilo v konkrétním tenantovi pro mezipaměť sdíleného tokenu nebo IntelliJ IDEA. - Nastavení proměnné
AZURE_USERNAME
prostředí se konfigurujeDefaultAzureCredential
tak, aby z mezipaměti sdíleného tokenu vybrali odpovídající token uložený v mezipaměti.
Ověřování pomocí DefaultAzureCredential
Následující příklad ukazuje ověření SecretClient
z klientské knihovny azure-security-keyvault-secrets pomocí DefaultAzureCredential
:
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Ověření spravované identity přiřazené uživatelem pomocí DefaultAzureCredential
Následující příklad ukazuje ověření SecretClient
z klientské knihovny azure-security-keyvault-secrets pomocí DefaultAzureCredential
nasazené do prostředku Azure s nakonfigurovanou spravovanou identitou přiřazenou uživatelem.
/**
* DefaultAzureCredential uses the user-assigned managed identity with the specified client ID.
*/
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
.managedIdentityClientId("<CLIENT_ID>")
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")
.credential(credential)
.buildClient();
ManagedIdentityCredential
ManagedIdentityCredential ověřuje spravovanou identitu (přiřazenou systémem nebo přiřazenou uživatelem) prostředku Azure. Pokud tedy aplikace běží v prostředku Azure, který podporuje spravovanou identitu prostřednictvím IDENTITY/MSI
koncových IMDS
bodů nebo obojího, získá tyto přihlašovací údaje vaši aplikaci ověřenou a nabízí prostředí pro ověřování bez tajných kódů.
Další informace najdete v tématu, které vysvětluje, co jsou spravované identity pro prostředky Azure.
Ověřování v Azure pomocí spravované identity
Následující příklad ukazuje ověření SecretClient
z klientské knihovny azure-security-keyvault-secrets pomocí ManagedIdentityCredential
virtuálního počítače, služby App Service, aplikace Functions, Cloud Shellu, Service Fabric, Arc nebo AKS v Azure s povolenou spravovanou identitou přiřazenou systémem nebo uživatelem.
/**
* Authenticate with a user-assigned managed identity.
*/
ManagedIdentityCredential credential = new ManagedIdentityCredentialBuilder()
.clientId("<CLIENT_ID>") // required only for user-assigned
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")
.credential(credential)
.buildClient();
Proměnné prostředí
Můžete nakonfigurovat DefaultAzureCredential
a EnvironmentCredential
použít proměnné prostředí. Každý typ ověřování vyžaduje hodnoty pro konkrétní proměnné:
Instanční objekt s tajným kódem
Název proměnné | Hodnota |
---|---|
AZURE_CLIENT_ID |
ID aplikace Microsoft Entra. |
AZURE_TENANT_ID |
ID tenanta Microsoft Entra aplikace. |
AZURE_CLIENT_SECRET |
Jeden z tajných kódů klienta aplikace. |
Instanční objekt s certifikátem
Název proměnné | Hodnota |
---|---|
AZURE_CLIENT_ID |
ID aplikace Microsoft Entra. |
AZURE_TENANT_ID |
ID tenanta Microsoft Entra aplikace. |
AZURE_CLIENT_CERTIFICATE_PATH |
Cesta k souboru certifikátu s kódováním PEM včetně privátního klíče (bez ochrany heslem) |
AZURE_CLIENT_CERTIFICATE_PASSWORD |
(volitelné) Heslo souboru certifikátu, pokud existuje. |
AZURE_CLIENT_SEND_CERTIFICATE_CHAIN |
(volitelné) Odešle řetěz certifikátů v hlavičce x5c, aby podporoval ověřování na základě názvu subjektu nebo vystavitele. |
Uživatelské jméno a heslo
Název proměnné | Hodnota |
---|---|
AZURE_CLIENT_ID |
ID aplikace Microsoft Entra. |
AZURE_TENANT_ID |
ID tenanta Microsoft Entra aplikace. |
AZURE_USERNAME |
Uživatelské jméno (obvykle e-mailová adresa). |
AZURE_PASSWORD |
Přidružené heslo pro dané uživatelské jméno. |
Konfigurace se v tomto pořadí pokusí. Pokud jsou například k dispozici hodnoty pro tajný klíč klienta a certifikát, použije se tajný klíč klienta.
Další kroky
Tento článek se zabýval ověřováním pro aplikace hostované v Azure. Tato forma ověřování je jedním z několika způsobů, jak se můžete ověřit v sadě Azure SDK pro Javu. Následující články popisují další způsoby:
- Ověřování Azure ve vývojových prostředích
- Ověřování pomocí instančních objektů
- Ověřování pomocí přihlašovacích údajů uživatele
Pokud narazíte na problémy související s ověřováním aplikací hostovaným v Azure, přečtěte si téma Řešení potíží s ověřováním aplikací hostovaných v Azure.
Jakmile zvládnete ověřování, přečtěte si téma Konfigurace protokolování v sadě Azure SDK pro Javu , kde najdete informace o funkcích protokolování poskytovaných sadou SDK.