Azure-autentisering med tjänstens huvudnamn
Den här artikeln beskriver hur Azure Identity-biblioteket stöder Microsoft Entra-tokenautentisering via tjänstens huvudnamn. Den här artikeln beskriver följande ämnen:
- Skapa ett huvudnamn för tjänsten med Azure CLI
- Klienthemlighetsautentiseringsuppgifter
- Autentiseringsuppgifter för klientcertifikat
Mer information finns i Program- och tjänsthuvudnamnsobjekt i Microsoft Entra-ID. Felsökning av autentiseringsproblem med tjänstens huvudnamn finns i Felsöka autentisering med tjänstens huvudnamn.
Skapa ett huvudnamn för tjänsten med Azure CLI
Använd följande Azure CLI-exempel för att skapa eller hämta autentiseringsuppgifter för klienthemligheter.
Använd följande kommando för att skapa ett huvudnamn för tjänsten och konfigurera dess åtkomst till Azure-resurser:
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--scopes /subscriptions/mySubscriptionID
Det här kommandot returnerar ett värde som liknar följande utdata:
{
"appId": "generated-app-ID",
"displayName": "dummy-app-name",
"name": "http://dummy-app-name",
"password": "random-password",
"tenant": "tenant-ID"
}
Använd följande kommando för att skapa ett huvudnamn för tjänsten tillsammans med ett certifikat. Anteckna sökvägen/platsen för det här certifikatet.
az ad sp create-for-rbac \
--name <your application name> \
--role Contributor \
--cert <certificate name> \
--create-cert
Kontrollera de returnerade autentiseringsuppgifterna och anteckna följande information:
AZURE\_CLIENT\_ID
för appId.AZURE\_CLIENT\_SECRET
för lösenordet.AZURE\_TENANT\_ID
för klientorganisationen.
Klienthemlighetsautentiseringsuppgifter
Den här autentiseringsuppgiften autentiserar det skapade tjänstens huvudnamn via dess klienthemlighet (lösenord). Det här exemplet visar hur du autentiserar SecretClient
från klientbiblioteket azure-security-keyvault-secrets med hjälp av 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();
Autentiseringsuppgifter för klientcertifikat
Den här autentiseringsuppgiften autentiserar det skapade tjänstens huvudnamn via klientcertifikatet. Det här exemplet visar hur du autentiserar SecretClient
från klientbiblioteket azure-security-keyvault-secrets med hjälp av 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();
Nästa steg
I den här artikeln beskrivs autentisering via tjänstens huvudnamn. Den här typen av autentisering är ett av flera sätt som du kan autentisera i Azure SDK för Java. Följande artiklar beskriver andra sätt:
- Azure-autentisering i utvecklingsmiljöer
- Autentisera program som finns i Azure
- Autentisering med användarautentiseringsuppgifter
Om du stöter på problem som rör autentisering med tjänstens huvudnamn kan du läsa Felsöka autentisering med tjänstens huvudnamn.
När du har bemästrat autentiseringen kan du läsa Konfigurera loggning i Azure SDK för Java för information om de loggningsfunktioner som tillhandahålls av SDK:t.