Azure-verificatie met service-principal
In dit artikel wordt beschreven hoe de Azure Identity-bibliotheek microsoft Entra-tokenverificatie ondersteunt via een service-principal. In dit artikel worden de volgende onderwerpen behandeld:
- Een service-principal maken met de Azure CLI
- Referenties voor clientgeheim
- Referenties voor clientcertificaat
Zie Toepassings- en service-principalobjecten in Microsoft Entra-id voor meer informatie. Zie Problemen met service-principalverificatie oplossen voor meer informatie over het oplossen van verificatie van service-principals.
Een service-principal maken met de Azure CLI
Gebruik de volgende Azure CLI-voorbeelden om referenties voor clientgeheimen te maken of op te halen.
Gebruik de volgende opdracht om een service-principal te maken en de toegang tot Azure-resources te configureren:
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--scopes /subscriptions/mySubscriptionID
Met deze opdracht wordt een waarde geretourneerd die vergelijkbaar is met de volgende uitvoer:
{
"appId": "generated-app-ID",
"displayName": "dummy-app-name",
"name": "http://dummy-app-name",
"password": "random-password",
"tenant": "tenant-ID"
}
Gebruik de volgende opdracht om een service-principal samen met een certificaat te maken. Noteer het pad/de locatie van dit certificaat.
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--cert <certificate name> \
--create-cert
Controleer de geretourneerde referenties en noteer de volgende informatie:
AZURE\_CLIENT\_ID
voor de appId.AZURE\_CLIENT\_SECRET
voor het wachtwoord.AZURE\_TENANT\_ID
voor de tenant.
Referenties voor clientgeheim
Met deze referentie wordt de gemaakte service-principal geverifieerd via het clientgeheim (wachtwoord). In dit voorbeeld wordt het verifiëren van de SecretClient
clientbibliotheek azure-security-keyvault-secrets met behulp van de ClientSecretCredential
.
/**
* 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();
Referenties voor clientcertificaat
Met deze referentie wordt de gemaakte service-principal geverifieerd via het clientcertificaat. In dit voorbeeld wordt het verifiëren van de SecretClient
clientbibliotheek azure-security-keyvault-secrets met behulp van de ClientCertificateCredential
.
/**
* 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();
Volgende stappen
Dit artikel heeft betrekking op verificatie via een service-principal. Deze vorm van verificatie is een van de verschillende manieren waarop u zich kunt verifiëren in de Azure SDK voor Java. In de volgende artikelen worden andere manieren beschreven:
- Azure-verificatie in ontwikkelomgevingen
- Toepassingen verifiëren die worden gehost in Azure
- Verificatie met gebruikersreferenties
Als u problemen ondervindt met betrekking tot verificatie van de service-principal, raadpleegt u Problemen met service-principalverificatie oplossen.
Nadat u de verificatie hebt beheerd, raadpleegt u Logboekregistratie configureren in de Azure SDK voor Java voor informatie over de functionaliteit voor logboekregistratie die door de SDK wordt geboden.