Dela via


Azure-autentisering med tjänsthuvudkonto

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 Applikations- och tjänstprincipobjekt 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 exempel på Azure CLI för att skapa eller hämta klientens hemlighetsåtkomstuppgifter.

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.
  • för klientorganisationen.

Klienthemlighetsautentiseringsuppgifter

Denna autentiseringsuppgift verifierar det skapade tjänstens huvudkonto med sin 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 ClientSecretCredential.

/**
 *  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>")
  //.clientCertificatePassword("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änsthuvudman. 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änsthuvudprincip kan du läsa Felsöka autentisering av tjänsthuvudprincip.

När du har förstått autentiseringen, läs Konfigurera loggning i Azure SDK för Java för information om SDK:ts loggningsfunktioner.