Condividi tramite


Autenticazione di Azure con il principale del servizio

Questo articolo illustra in che modo la libreria di identità di Azure supporta l'autenticazione tramite token di Microsoft Entra tramite il principal del servizio. Questo articolo illustra gli argomenti seguenti:

Per ulteriori informazioni, vedere Oggetti applicazione ed entità servizio in Microsoft Entra ID. Per risolvere i 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 locatario.

Credenziali di segreto del client

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

Passaggi successivi

Questo articolo ha illustrato l'autenticazione tramite il principale del 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 del principale del servizio, vedere Risoluzione dei problemi di autenticazione del principale del servizio.

Dopo aver acquisito padronanza con l'autenticazione, vedere Configurazione del logging nell'SDK di Azure per Java per informazioni sulle funzionalità di logging fornite dallo SDK.