Eseguire l'autenticazione nell'area di lavoro usando un'entità servizio
A volte non è adatto usare l'autenticazione interattiva o eseguire l'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:
Creare un'applicazione Azure AD:
Nota
Non è necessario impostare un URI di reindirizzamento.
- Dopo la creazione, prendere nota dell'ID applicazione (client) e dell'ID directory (tenant).
Creare credenziali per accedere come applicazione:
- Nelle impostazioni per l'applicazione selezionare Certificati e segreti.
- In Segreti client selezionare Crea nuovo segreto.
- Specificare una descrizione e una durata, quindi selezionare Aggiungi.
- Copiare immediatamente il valore del segreto in un luogo sicuro. Non sarà possibile visualizzarlo di nuovo.
Concedere all'entità servizio le autorizzazioni per accedere all'area di lavoro:
- Apri il portale di Azure.
- 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.
- Nella panoramica del gruppo di risorse selezionare Controllo di accesso (IAM).
- Selezionare Aggiungi assegnazione di ruolo.
- Cercare e selezionare l'entità servizio.
- 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 di area di lavoro, è possibile creare l'entità servizio con il 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 la creazione di istanze 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.