Azure-Authentifizierung mit Dienstprinzipal
In diesem Artikel wird erläutert, wie die Azure-Identity-Bibliothek Microsoft Entra-Tokenauthentifizierung über einen Dienstprinzipal unterstützt. In diesem Artikel werden die folgenden Themen behandelt:
- Erstellen eines Dienstprinzipals über die Azure CLI
- Anmeldeinformationen mit Clientgeheimnis
- Anmeldeinformationen mit Clientzertifikat
Weitere Informationen finden Sie unter Anwendungs- und Dienstprinzipalobjekte in Microsoft Entra ID. Informationen zur Problembehandlung bei Dienstprinzipalauthentifizierungsproblemen finden Sie unter Problembehandlung bei der Dienstprinzipalauthentifizierung.
Erstellen eines Dienstprinzipals über die Azure CLI
Verwenden Sie die folgenden Azure CLI-Beispiele, um Anmeldeinformationen mit geheimen Clientschlüssel zu erstellen oder abzurufen.
Verwenden Sie den folgenden Befehl, um einen Dienstprinzipal zu erstellen und seinen Zugriff auf Azure-Ressourcen zu konfigurieren:
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--scopes /subscriptions/mySubscriptionID
Dieser Befehl gibt einen Wert zurück, der der folgenden Ausgabe ähnelt:
{
"appId": "generated-app-ID",
"displayName": "dummy-app-name",
"name": "http://dummy-app-name",
"password": "random-password",
"tenant": "tenant-ID"
}
Verwenden Sie den folgenden Befehl, um einen Dienstprinzipal zusammen mit einem Zertifikat zu erstellen. Notieren Sie sich den Pfad/Speicherort dieses Zertifikats.
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--cert <certificate name> \
--create-cert
Überprüfen Sie die zurückgegebenen Anmeldeinformationen, und notieren Sie sich die folgenden Informationen:
AZURE\_CLIENT\_ID
als appId.AZURE\_CLIENT\_SECRET
als Kennwort.AZURE\_TENANT\_ID
als Mandant.
Anmeldeinformationen mit Clientgeheimnis
Diese Anmeldeinformationen authentifizieren den erstellten Dienstprinzipal über sein Clientgeheimnis (Kennwort). Dieses Beispiel zeigt, wie SecretClient
von der azure-security-keyvault-secrets-Clientbibliothek mithilfe von ClientSecretCredential
authentifiziert wird.
/**
* Authenticate with client secret.
*/
ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder()
.clientId("<your client ID>")
.clientSecret("<your client secret>")
.tenantId("<your tenant 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(clientSecretCredential)
.buildClient();
Anmeldeinformationen mit Clientzertifikat
Diese Anmeldeinformationen authentifizieren den erstellten Dienstprinzipal über sein Clientzertifikat. Dieses Beispiel zeigt, wie SecretClient
von der azure-security-keyvault-secrets-Clientbibliothek mithilfe von ClientCertificateCredential
authentifiziert wird.
/**
* Authenticate with a client certificate.
*/
ClientCertificateCredential clientCertificateCredential = new ClientCertificateCredentialBuilder()
.clientId("<your client ID>")
.pemCertificate("<path to PEM certificate>")
// Choose between either a PEM certificate or a PFX certificate.
//.pfxCertificate("<path to PFX certificate>", "PFX CERTIFICATE PASSWORD")
.tenantId("<your tenant 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(clientCertificateCredential)
.buildClient();
Nächste Schritte
In diesem Artikel wurde Authentifizierung über einen Dienstprinzipal behandelt. Diese Form von Authentifizierung ist eine von mehreren Methoden, die Sie im Azure SDK für Java für die Authentifizierung verwenden können. In den folgenden Artikeln werden weitere Möglichkeiten beschrieben:
- Azure-Authentifizierung in Entwicklungsumgebungen
- Authentifizieren von in Azure gehosteten Anwendungen
- Authentifizierung mit Benutzeranmeldeinformationen
Wenn Probleme im Zusammenhang mit der Dienstprinzipalauthentifizierung auftreten, lesen Sie die Problembehandlung bei der Dienstprinzipalauthentifizierung.
Wenn Sie die Authentifizierung gemeistert haben, finden Sie unter Konfigurieren der Protokollierung im Azure SDK für Java weitere Informationen zur Protokollierungsfunktionalität, die vom SDK bereitgestellt wird.