Az Azure által üzemeltetett Java-alkalmazások hitelesítése

Ez a cikk azt vizsgálja, hogy az Azure Identity-kódtár hogyan támogatja a Microsoft Entra-jogkivonat-hitelesítést az Azure-ban üzemeltetett alkalmazásokhoz. Ez a támogatás a jelen cikkben tárgyalt implementációkon TokenCredential keresztül érhető el.

Ez a cikk a következő témaköröket ismerteti:

Az Azure által üzemeltetett alkalmazásokkal kapcsolatos hitelesítési problémák elhárításához tekintse meg az Azure által üzemeltetett alkalmazáshitelesítés hibaelhárítását.

Alapértelmezett Azure-hitelesítő adatok

DefaultAzureCredential a legtöbb olyan forgatókönyv esetében megfelelő, ahol az alkalmazás végül az Azure Cloudban fut. DefaultAzureCredential az üzembe helyezéskor gyakran használt hitelesítő adatokat kombinálja a fejlesztési környezetben történő hitelesítéshez használt hitelesítő adatokkal. DefaultAzureCredential a következő mechanizmusokkal próbál hitelesítést végezni, hogy:

DefaultAzureCredential authentication flow

  • Környezet – DefaultAzureCredential beolvassa a környezeti változókon keresztül megadott fiókadatokat, és hitelesíti azokat .
  • Felügyelt identitás – Ha az alkalmazás olyan Azure-gazdagépen települ, amelyen engedélyezve van a felügyelt identitás, DefaultAzureCredential azzal a fiókkal hitelesít.
  • IntelliJ – Ha az Azure Toolkit for IntelliJ-en keresztül hitelesített, DefaultAzureCredential azzal a fiókkal hitelesít.
  • Visual Studio Code – Ha a Visual Studio Code Azure-fiók beépülő moduljával hitelesített, DefaultAzureCredential azzal a fiókkal hitelesít.
  • Azure CLI – Ha az Azure CLI-paranccsal az login hitelesített egy fiókot, DefaultAzureCredential azzal a fiókkal hitelesít.

DefaultAzureCredential konfigurálása

DefaultAzureCredential a konfigurációk egy készletét támogatja a környezeti vagy a DefaultAzureCredentialBuilder környezeti változók beállítóin keresztül.

  • A környezeti változók AZURE_CLIENT_IDbeállítása és AZURE_CLIENT_SECRETAZURE_TENANT_ID a környezeti változókban meghatározottak úgy konfigurálhatókDefaultAzureCredential, hogy az értékek által megadott szolgáltatásnévként hitelesítsék magukat.
  • A szerkesztő vagy a környezeti változó AZURE_CLIENT_ID beállítása .managedIdentityClientId(String) úgy konfigurálja DefaultAzureCredential a hitelesítést, mint felhasználó által definiált felügyelt identitást, miközben üresen hagyja őket, a rendszer által hozzárendelt felügyelt identitásként konfigurálja a hitelesítést.
  • A szerkesztő vagy a környezeti változó AZURE_TENANT_ID beállítása .tenantId(String) konfigurálja egy adott bérlő hitelesítését a megosztott jogkivonat-gyorsítótárhozDefaultAzureCredential, a Visual Studio Code-hoz és az IntelliJ IDEA-hoz.
  • A környezeti változó AZURE_USERNAME beállítása úgy konfigurálható DefaultAzureCredential , hogy a megfelelő gyorsítótárazott jogkivonatot válassza ki a megosztott jogkivonat-gyorsítótárból.
  • A szerkesztő beállítása .intelliJKeePassDatabasePath(String) konfigurálja DefaultAzureCredential egy adott KeePass-fájl olvasását intelliJ-hitelesítő adatokkal végzett hitelesítéskor.

Hitelesítés DefaultAzureCredential használatával

Az alábbi példa az azure-security-keyvault-secrets ügyfélkódtárból való hitelesítést SecretClient mutatja be a használatávalDefaultAzureCredential.

// 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();

Felhasználó által hozzárendelt felügyelt identitás hitelesítése DefaultAzureCredential használatával

Az alábbi példa az Azure-security-keyvault-secrets ügyfélkódtárból DefaultAzureCredential való hitelesítést SecretClient mutatja be egy Azure-erőforrásban üzembe helyezett, felhasználó által hozzárendelt felügyelt identitás konfigurálásával.

/**
 * 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();

Felhasználó hitelesítése az Azure Toolkit for IntelliJ-ben DefaultAzureCredential használatával

Az alábbi példa az Azure-security-keyvault-secrets ügyfélkódtárból DefaultAzureCredentialvaló hitelesítést SecretClient mutatja be egy olyan munkaállomáson, amelyen telepítve van az IntelliJ IDEA, és a felhasználó egy Azure-fiókkal jelentkezett be az Azure Toolkit for IntelliJ-be.

További információ az IntelliJ IDEA konfigurálásáról: Bejelentkezés az IntelliJ-hez készült Azure Toolkit for IntelliJ for IntelliJCredential szolgáltatásban.

/**
 * 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();

Felügyelt identitás hitelesítő adatai

A felügyelt identitás hitelesíti egy Azure-erőforrás felügyelt identitását (rendszer vagy felhasználó által hozzárendelt). Ha tehát az alkalmazás olyan Azure-erőforráson belül fut, amely támogatja a felügyelt identitást a IMDS végpontokon vagy mindkettőn keresztülIDENTITY/MSI, akkor ez a hitelesítő adat hitelesíti az alkalmazást, és nagyszerű titkos hitelesítési élményt nyújt.

További információ: Mik az Azure-erőforrások felügyelt identitásai?.

Hitelesítés az Azure-ban felügyelt identitással

Az alábbi példa az Azure-security-keyvault-secrets ügyfélkódtárból való hitelesítést SecretClient mutatja be egy virtuális gép, app service, függvényalkalmazás, Cloud Shell, service fabric, arc vagy AKS-környezet használatával ManagedIdentityCredential az Azure-ban, és engedélyezve van a rendszer által hozzárendelt vagy felhasználó által hozzárendelt felügyelt identitás.

/**
 * 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();

Környezeti változók

Konfigurálhatja és EnvironmentCredential használhat DefaultAzureCredential környezeti változókat. A hitelesítés minden típusához szükség van bizonyos változók értékeire:

Szolgáltatásnév titkos kóddal

Variable name Value
AZURE_CLIENT_ID Egy Microsoft Entra-alkalmazás azonosítója.
AZURE_TENANT_ID Az alkalmazás Microsoft Entra-bérlőjének azonosítója.
AZURE_CLIENT_SECRET Az alkalmazás egyik titkos ügyfélkulcsa.

Szolgáltatásnév tanúsítvánnyal

Variable name Value
AZURE_CLIENT_ID Egy Microsoft Entra-alkalmazás azonosítója.
AZURE_TENANT_ID Az alkalmazás Microsoft Entra-bérlőjének azonosítója.
AZURE_CLIENT_CERTIFICATE_PATH PEM-kódolt tanúsítványfájl elérési útja, beleértve a titkos kulcsot is (jelszóvédelem nélkül).

Felhasználónév és jelszó

Variable name Value
AZURE_CLIENT_ID Egy Microsoft Entra-alkalmazás azonosítója.
AZURE_USERNAME Felhasználónév (általában e-mail-cím).
AZURE_PASSWORD A megadott felhasználónévhez tartozó jelszó.

A rendszer ebben a sorrendben próbálja meg a konfigurációt. Ha például az ügyfélkulcs és a tanúsítvány értékei is jelen vannak, a rendszer az ügyfélkulcsot használja.

További lépések

Ez a cikk az Azure-ban üzemeltetett alkalmazások hitelesítését ismerteti. Ez a hitelesítési mód a Java Azure SDK-ban történő hitelesítés egyik módja. A következő cikkek a következő módszereket ismertetik:

Ha problémákba ütközik az Azure által üzemeltetett alkalmazáshitelesítéssel kapcsolatban, tekintse meg az Azure által üzemeltetett alkalmazáshitelesítés hibaelhárítását.

A hitelesítés elsajátítása után az SDK által biztosított naplózási funkciókkal kapcsolatos információkért tekintse meg a Java Azure SDK naplózásának konfigurálása című témakört.