Utilizzo di un'entità servizio per l'autenticazione

A volte non è adatto all'uso dell'autenticazione interattiva o all'autenticazione come account utente. Ad esempio, per inviare processi da un servizio Web, da un altro ruolo di lavoro o da un sistema automatizzato. Un'opzione consiste nel configurare un'identità gestita, un'altra opzione consiste nell'usare un'entità servizio, che verrà illustrata in questo articolo.

Prerequisito: creare un'entità servizio e un segreto dell'applicazione

Per eseguire l'autenticazione come entità servizio, è prima necessario creare un'entità servizio.

Per creare un'entità servizio, assegnare l'accesso e generare le credenziali:

  1. Creare un'applicazione Azure AD:

    Nota

    Non è necessario impostare un URI di reindirizzamento.

    1. Dopo la creazione, prendere nota dell'ID applicazione (client) e dell'ID directory (tenant).
  2. Creare una credenziale per accedere come applicazione:

    1. Nelle impostazioni dell'applicazione selezionare Certificati & segreti.
    2. In Segreti client selezionare Crea nuovo segreto.
    3. Specificare una descrizione e una durata, quindi selezionare Aggiungi.
    4. Copiare immediatamente il valore del segreto in un luogo sicuro. Non sarà possibile visualizzarlo di nuovo.
  3. Concedere all'entità servizio le autorizzazioni per accedere all'area di lavoro:

    1. Aprire il portale di Azure.
    2. Nella barra di ricerca immettere il nome del gruppo di risorse in cui è stata creata l'area di lavoro. Selezionare il gruppo di risorse quando viene visualizzato nei risultati.
    3. Nella panoramica del gruppo di risorse selezionare Controllo di accesso (IAM).
    4. Selezionare Aggiungi assegnazione ruolo.
    5. Cercare e selezionare l'entità servizio.
    6. Assegnare il ruolo Collaboratore o Proprietario.

Nota

Per creare un'assegnazione di ruolo nel gruppo di risorse o nell'area di lavoro, è necessario essere un proprietario o un Amministratore Accesso utenti nell'ambito dell'assegnazione di ruolo. Se non si dispone delle autorizzazioni per creare l'entità servizio nella sottoscrizione, è necessario richiedere l'autorizzazione al proprietario o all'amministratore della sottoscrizione di Azure.

Se si dispone delle autorizzazioni solo a livello di gruppo di risorse o area di lavoro, è possibile creare l'entità servizio nel ruolo Collaboratore usando:

az ad sp create-for-rbac --role Contributor --scopes /subscriptions/<SUBSCRIPTION-ID>

Eseguire l'autenticazione come entità servizio

Opzione 1: usando le variabili di ambiente: le credenziali predefinite usate nella creazione dell'oggetto Workspace sono le credenziali predefinite DefaultAzureCredential, che tenteranno diversi tipi di autenticazione. Il primo è EnvironmentCredential e con cui si passano le credenziali dell'entità servizio tramite le variabili di ambiente seguenti:

  • AZURE_TENANT_ID: ID del tenant dell'entità servizio. Denominato anche ID 'directory'.
  • AZURE_CLIENT_ID: ID client dell'entità servizio.
  • AZURE_CLIENT_SECRET: uno dei segreti client dell'entità servizio.

Opzione 2: Uso di ClientSecretCredential: passare un clientSecretCredential durante l'istanza dell'oggetto Workspace o impostare la credentials proprietà.

from azure.identity import ClientSecretCredential

tenant_id = os.environ["AZURE_TENANT_ID"]
client_id = os.environ["AZURE_CLIENT_ID"]
client_secret = os.environ["AZURE_CLIENT_SECRET"]
credential = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)

workspace.credentials = credential

Nota

Il metodo workspace.login() è stato deprecato e non è più necessario. La prima volta che si verifica una chiamata al servizio, verrà eseguito un tentativo di autenticazione usando le credenziali passate nel costruttore Workspace o nella relativa proprietà credentials. Se non è stata passata alcuna credenziale, verranno tentati diversi metodi di autenticazione da parte di DefaultAzureCredential.