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.
Výchozí přihlašovací údaje Azure
DefaultAzureCredential
je vhodný pro většinu scénářů, ve kterých aplikace nakonec běží v cloudu Azure. 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í. DefaultAzureCredential
se pokouší ověřit prostřednictvím následujících mechanismů v pořadí:
- Prostředí –
DefaultAzureCredential
čte informace o účtu zadané prostřednictvím proměnných prostředí a používá je k ověření. - Spravovaná identita – Pokud se aplikace nasadí na hostitele Azure s povolenou spravovanou identitou,
DefaultAzureCredential
ověří se pomocí daného účtu. - IntelliJ – Pokud jste se ověřili prostřednictvím sady Azure Toolkit for IntelliJ,
DefaultAzureCredential
ověřuje se pomocí daného účtu. - Visual Studio Code – Pokud jste se ověřili prostřednictvím modulu plug-in Azure Account editoru Visual Studio Code,
DefaultAzureCredential
ověří se u daného účtu. - Azure CLI – Pokud jste účet ověřili pomocí příkazu Azure CLI
az login
,DefaultAzureCredential
ověří se u daného účtu.
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)
tvůrce nebo proměnnéAZURE_CLIENT_ID
prostředí se konfigurujeDefaultAzureCredential
tak, aby se ověřilo jako uživatelem definovaná spravovaná identita, a přitom 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í konfigurujeDefaultAzureCredential
ověření pro konkrétního tenanta pro mezipaměť sdílených tokenů, Visual Studio Code a 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. - Nastavení
.intelliJKeePassDatabasePath(String)
v tvůrci konfigurujeDefaultAzureCredential
čtení konkrétního souboru KeePass při ověřování pomocí přihlašovacích údajů IntelliJ.
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://<your 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.
/**
* The default credential uses the user-assigned managed identity with the specified client ID.
*/
DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder()
.managedIdentityClientId("<managed identity client ID>")
.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(defaultCredential)
.buildClient();
Ověření uživatele v sadě Azure Toolkit for IntelliJ pomocí defaultAzureCredential
Následující příklad ukazuje ověření SecretClient
z klientské knihovny azure-security-keyvault-secrets pomocí DefaultAzureCredential
, na pracovní stanici, kde je nainstalovaná IntelliJ IDEA, a uživatel se přihlásil pomocí účtu Azure k sadě Azure Toolkit for IntelliJ.
Další informace o konfiguraci IntelliJ IDEA najdete v tématu Přihlášení k sadě Azure Toolkit for IntelliJ pro IntelliJCredential.
/**
* The default credential uses the KeePass database path to find the user account in IntelliJ on Windows.
*/
// KeePass configuration is required only for Windows. No configuration needed for Linux / Mac.
DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder()
.intelliJKeePassDatabasePath("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(defaultCredential)
.buildClient();
Přihlašovací údaje spravované identity
Spravovaná identita ověřuje spravovanou identitu (systém nebo přiřazený 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í skvělé 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 funkcí, Cloud Shellu, service fabric, arc nebo prostředí AKS v Azure s povolenou spravovanou identitou přiřazenou systémem nebo uživatelem.
/**
* Authenticate with a managed identity.
*/
ManagedIdentityCredential managedIdentityCredential = new ManagedIdentityCredentialBuilder()
.clientId("<user-assigned managed identity client ID>") // required only for user-assigned
.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(managedIdentityCredential)
.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) |
Uživatelské jméno a heslo
Název proměnné | Hodnota |
---|---|
AZURE_CLIENT_ID |
ID aplikace Microsoft Entra. |
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.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro