Share via


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:

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:

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.