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:

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 SecretClientclientbibliotheek 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 SecretClientclientbibliotheek 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:

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.