Autenticazione di Azure con entità servizio

Questo articolo illustra in che modo la libreria di identità di Azure supporta l'autenticazione tramite token Di Ingresso Microsoft tramite l'entità servizio. Questo articolo illustra gli argomenti seguenti:

Per altre informazioni, vedere Oggetti applicazione e entità servizio in Microsoft Entra ID. Per la risoluzione dei problemi di autenticazione dell'entità servizio, vedere Risolvere i problemi di autenticazione dell'entità servizio.

Creare un'entità servizio con l'interfaccia della riga di comando di Azure

Usare gli esempi seguenti dell'interfaccia della riga di comando di Azure per creare o ottenere le credenziali del segreto client.

Usare il comando seguente per creare un'entità servizio e configurarne l'accesso alle risorse di Azure:

az ad sp create-for-rbac \
    --name <your application name> \
    --role Contributor \
    --scopes /subscriptions/mySubscriptionID

Questo comando restituisce un valore simile all'output seguente:

{
"appId": "generated-app-ID",
"displayName": "dummy-app-name",
"name": "http://dummy-app-name",
"password": "random-password",
"tenant": "tenant-ID"
}

Usare il comando seguente per creare un'entità servizio insieme a un certificato. Prendere nota del percorso/percorso del certificato.

az ad sp create-for-rbac \
    --name <your application name> \
    --role Contributor \
    --cert <certificate name> \
    --create-cert

Controllare le credenziali restituite e annotare le informazioni seguenti:

  • AZURE\_CLIENT\_ID per appId.
  • AZURE\_CLIENT\_SECRET per la password.
  • AZURE\_TENANT\_ID per il tenant.

Credenziali dei segreti client

Questa credenziale autentica l'entità servizio creata tramite il segreto client (password). Questo esempio illustra l'autenticazione SecretClient dalla libreria client azure-security-keyvault-secrets usando .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();

Credenziali del certificato client

Questa credenziale autentica l'entità servizio creata tramite il relativo certificato client. Questo esempio illustra l'autenticazione SecretClient dalla libreria client azure-security-keyvault-secrets usando .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();

Passaggi successivi

Questo articolo ha illustrato l'autenticazione tramite l'entità servizio. Questa forma di autenticazione è uno dei diversi modi in cui è possibile eseguire l'autenticazione in Azure SDK per Java. Gli articoli seguenti descrivono altri modi:

Se si verificano problemi relativi all'autenticazione dell'entità servizio, vedere Risolvere i problemi di autenticazione dell'entità servizio.

Dopo aver eseguito l'autenticazione master, vedere Configurare la registrazione in Azure SDK per Java per informazioni sulle funzionalità di registrazione fornite dall'SDK.