Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Gli strumenti automatizzati che usano i servizi di Azure devono avere sempre autorizzazioni limitate per garantire che le risorse di Azure siano sicure. Pertanto, invece di avere applicazioni che accedono come utente con privilegi completi, Azure offre principali di servizio. Un principale del servizio di Azure è un'identità creata per l'uso con applicazioni, servizi ospitati e strumenti automatizzati. Questa identità viene usata per accedere alle risorse.
In questa esercitazione si apprenderà come:
- Creare un principale servizio
- Accedere utilizzando un principal del servizio e una password
- Accedere con un principale del servizio e un certificato
- Gestire i ruoli dei principali del servizio
- Creare una risorsa di Azure usando un principal di servizio
- Reimpostare le credenziali dell'entità servizio principale
Prerequisiti
- Per creare un'entità servizio, è necessario avere autorizzazioni
User Access Administrator
oRole Based Access Control Administrator
o superiori in un abbonamento. Per un elenco dei ruoli disponibili per il controllo degli accessi in base al ruolo di Azure, vedere Ruoli predefiniti di Azure.
È possibile utilizzare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Introduzione ad Azure Cloud Shell.
Se preferisci eseguire localmente i comandi di riferimento della CLI, installa l'Azure CLI. Se si esegue in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se usi un'installazione locale, accedi all'interfaccia della riga di comando di Azure usando il comando az login. Per completare il processo di autenticazione, seguire i passaggi visualizzati nel terminale. Per altre opzioni di accesso, vedere Eseguire l'autenticazione ad Azure con l'interfaccia della riga di comando di Azure.
Quando ti viene richiesto, installa l'estensione Azure CLI al primo utilizzo. Per altre informazioni sulle estensioni, vedere Usare e gestire le estensioni con l'interfaccia della riga di comando di Azure.
Esegui az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, avviare az upgrade.
Creare un principale servizio
Usare il comando az ad sp create-for-rbac di Azure CLI per creare un principal di servizio. Questo esempio non specifica un --name
parametro, quindi viene creato automaticamente un nome contenente un timestamp.
az ad sp create-for-rbac
Console di output:
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Se non si accettano convenzioni di denominazione delle risorse e si prevede di creare un ruolo e un ambito per la nuova entità servizio in un secondo momento, il az ad sp create-for-rbac
comando senza parametri è una soluzione accettabile. Tuttavia, senza un ruolo e un ambito, la nuova entità servizio non ha accesso alle risorse. Esiste solo.
Quando si crea un'entità servizio senza parametri, completare anche questi passaggi:
- Registrare la password assegnata dal sistema perché non è possibile recuperarla di nuovo. Se si perde la password, reimpostarla usando az ad sp credential reset, come illustrato in Reimpostare le credenziali dell'entità servizio.
- Impostare l'assegnazione di ruolo per la nuova entità servizio usando az role assignment create come illustrato in Gestire i ruoli dell'entità servizio.
Annotazioni
Se il tuo account non ha l'autorizzazione per creare un service principal, az ad sp create-for-rbac
restituirà un messaggio di errore contenente "Privilegi insufficienti per completare l'operazione". Contatta l'amministratore di Microsoft Entra per creare un principale del servizio.
In una directory di Microsoft Entra ID in cui l'impostazione utente Gli utenti possono registrare applicazioni è stata impostata su No, è necessario essere membri di uno dei seguenti ruoli predefiniti di Microsoft Entra ID, che hanno l'azione microsoft.directory/applications/createAsOwner
o microsoft.directory/applications/create
:
- Sviluppatore di applicazioni
- Amministratore di applicazioni
- Amministratore di applicazioni cloud
- Amministratore globale
- Amministratore delle identità ibride
Per altre informazioni sulle impostazioni utente in Microsoft Entra ID, vedere Limitare gli utenti che possono creare applicazioni.
Creare un principale del servizio con ruolo e ambito
Come buona pratica, assegnate sempre un principale del servizio specifico --role
e --scopes
quando create un principale del servizio. Segui questi passaggi:
Determinare il ruolo corretto.
Quando si determina il ruolo, usare sempre il principio dei privilegi minimi. Ad esempio, non concedere all'entità di servizio
contributor
le autorizzazioni per una sottoscrizione se l'entità di servizio deve accedere solo all'archiviazione di Azure all'interno di un gruppo di risorse. Prendere in considerazione un ruolo specializzato come contributore ai dati dei BLOB di archiviazione. Per un elenco completo dei ruoli disponibili in Azure RBAC, vedere Ruoli predefiniti di Azure.Ottenere un valore per il parametro scopes.
Trovare e copiare l'ID risorsa della risorsa di Azure a cui deve accedere la nuova entità servizio. Queste informazioni si trovano in genere nella pagina Proprietà o endpoint del portale di Azure di ogni risorsa. Di seguito sono riportati esempi comuni
--scopes
, ma fate riferimento al vostro ID Risorsa per un formato e un valore effettivi.Ambito Esempio Abbonamento /subscriptions/mySubscriptionID
Gruppo di risorse /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Macchina virtuale /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Servizio di file dell'account di archiviazione /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Fabbrica di dati /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName
Per altri esempi di ambito, vedere Comprendere l'ambito per RBAC di Azure.
Creare l'entità servizio.
In questo esempio viene creata una nuova entità servizio denominata myServicePrincipalName1 con autorizzazioni di lettura per tutte le risorse nel gruppo di risorse RG1.
# Bash script az ad sp create-for-rbac --name myServicePrincipalName1 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1
Il
--scopes
parametro accetta un elenco delimitato da spazi di scopi. In questo esempio viene creata una nuova entità servizio denominata myServicePrincipalName2 con autorizzazioni di lettura per tutte le risorse nel gruppo di risorse myRG1. Questa entità servizio ha anche le autorizzazioni di lettura per myVM che si trovano in myRG2.# Bash script az ad sp create-for-rbac --name myServicePrincipalName2 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG2/providers/Microsoft.Compute/virtualMachines/myVM
Se decidi di aver concesso troppe poche o troppe autorizzazioni al nuovo principale del servizio, modifica le autorizzazioni gestendo i ruoli del principale del servizio.
Creare un'entità servizio usando le variabili
È anche possibile creare un principale del servizio usando le variabili:
# Bash script
let "randomIdentifier=$RANDOM*$RANDOM"
servicePrincipalName="msdocs-sp-$randomIdentifier"
roleName="azureRoleName"
subscriptionID=$(az account show --query id --output tsv)
# Verify the ID of the active subscription
echo "Using subscription ID $subscriptionID"
resourceGroup="myResourceGroupName"
echo "Creating SP for RBAC with name $servicePrincipalName, with role $roleName and in scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup"
az ad sp create-for-rbac --name $servicePrincipalName \
--role $roleName \
--scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup
Per un elenco completo delle proprietà dell'entità servizio, usare az ad sp list e vedere Ottenere un'entità servizio esistente.
Avvertimento
Quando si crea un principale del servizio di Azure usando il comando az ad sp create-for-rbac
, l'output include credenziali che devono essere protette. Assicurarsi di non includere tali credenziali nel codice oppure archiviarle nel controllo del codice sorgente. In alternativa, è consigliabile usare le identità gestite, se disponibili, per evitare la necessità di usare le credenziali.
Passaggi successivi
Dopo aver appreso come creare un'entità servizio di Azure, procedere con il passaggio successivo per informazioni su come usare le entità servizio con l'autenticazione basata su password.