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:
- 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_ID
beállítása ésAZURE_CLIENT_SECRET
AZURE_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áljaDefaultAzureCredential
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áljaDefaultAzureCredential
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 DefaultAzureCredential
való 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:
- Azure-hitelesítés fejlesztési környezetekben
- Hitelesítés szolgáltatásnevek használatával
- Hitelesítés felhasználói hitelesítő adatokkal
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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: