Esercizio - Creare un'entità servizio e una chiave
Importante
Per eseguire questo esercizio è necessario disporre di una propria sottoscrizione di Azure e questo potrebbe comportare dei costi. Se non hai ancora una sottoscrizione di Azure, crea un account gratuito prima di iniziare.
Prima di creare la pipeline di distribuzione per il sito Web dell'azienda di giocattoli, sarà necessario creare un'entità servizio e concederle l'accesso all'ambiente Azure. In questo esercizio si creerà l'entità servizio da usare per la pipeline di distribuzione.
Durante il processo, si eseguiranno queste operazioni:
- Creare un'applicazione, un'entità servizio e una chiave con un'unica operazione.
- Gestire la chiave in modo sicuro.
- Verificare che l'entità servizio funzioni accedendo ad Azure con le relative credenziali.
Questo esercizio richiede l'autorizzazione per creare applicazioni ed entità servizio nella directory Microsoft Entra. Se non è possibile soddisfare questo requisito con l'account Azure corrente, è possibile ottenere una versione di valutazione gratuita e creare una nuova sottoscrizione e un nuovo tenant di Azure. In alternativa, è possibile ignorare questo esercizio.
Accedere ad Azure
Per usare le entità servizio in Azure, è necessario accedere all'account Azure dal terminale di Visual Studio Code.
Nel menu Terminale selezionare Nuovo terminale. La finestra del terminale si apre solitamente nella parte inferiore della schermata.
La shell predefinita è in genere pwsh, come illustrato sul lato destro della finestra del terminale.
Selezionare l'elenco a discesa Avvia profilo e quindi selezionare Azure Cloud Shell (Bash).
Verrà aperta una nuova shell.
Accedere ad Azure tramite l'interfaccia della riga di comando di Azure
Nel terminale di Visual Studio Code accedere ad Azure eseguendo il comando seguente:
az login
Nel browser visualizzato accedere al proprio account Azure.
Per distribuire questo modello in Azure, accedere all'account Azure dal terminale di Visual Studio Code.
Nel menu Terminale selezionare Nuovo terminale. La finestra del terminale si apre solitamente nella parte inferiore della schermata.
La shell predefinita è in genere pwsh, come illustrato sul lato destro della finestra del terminale.
Selezionare l'elenco a discesa Avvia profilo e quindi selezionare Azure Cloud Shell (PowerShell).
Verrà aperta una nuova shell.
Accedere ad Azure usando Azure PowerShell
Nel terminale di Visual Studio Code accedere ad Azure eseguendo il comando seguente:
Connect-AzAccount
Nel browser visualizzato accedere al proprio account Azure.
Creare un'entità servizio e una chiave
Eseguire questo comando dell'interfaccia della riga di comando di Azure nel terminale di Visual Studio Code per creare un'entità servizio:
az ad sp create-for-rbac --name ToyWebsitePipeline
Se l'interfaccia della riga di comando di Azure mostra un errore che indica che un'altra applicazione ha lo stesso nome visualizzato, significa che un altro utente che usa il tenant di Microsoft Entra ha creato un'entità servizio con lo stesso nome. Modificare il valore
--name
impostandone uno univoco. Non influirà sul modo in cui si segue il resto degli esercizi.Esaminare l'output JSON del comando precedente, in cui sono incluse le proprietà seguenti:
appId
: ID applicazione dell'entità servizio.password
: chiave dell'entità servizio.tenant
: ID tenant di Microsoft Entra.
Copiare questi valori e riporli in un luogo sicuro. Queste informazioni verranno usate a breve.
Eseguire questi comandi di Azure PowerShell nel terminale di Visual Studio Code per creare un'entità servizio:
$servicePrincipal = New-AzADServicePrincipal ` -DisplayName ToyWebsitePipeline
Esegui il comando seguente per ottenere la chiave dell'entità servizio:
$servicePrincipalKey = $servicePrincipal.PasswordCredentials.SecretText
Eseguire il comando seguente per visualizzare l'ID applicazione dell'entità servizio, la chiave e l'ID tenant di Microsoft Entra:
Write-Output "Service principal application ID: $($servicePrincipal.AppId)" Write-Output "Service principal key: $servicePrincipalKey" Write-Output "Your Azure AD tenant ID: $((Get-AzContext).Tenant.Id)"
Copiare i valori e riporli in un luogo sicuro. Queste informazioni verranno usate a breve.
Avviso
Gli output dei comandi precedenti contengono la chiave per l'entità servizio. Fare attenzione alla posizione in cui si eseguono questi comandi. Non eseguirli, ad esempio, in un ambiente in cui un utente potrebbe essere in grado di visualizzarli.
Testare l'entità servizio
Per verificare che l'entità servizio sia stata creata correttamente, puoi eseguire l'accesso usando le relative credenziali.
Eseguire questo comando dell'interfaccia della riga di comando di Azure nel terminale di Visual Studio Code per accedere con le credenziali dell'entità servizio. Sostituire i segnaposto con i valori copiati nel passaggio precedente.
az login --service-principal \ --username APPLICATION_ID \ --password PASSWORD \ --tenant TENANT_ID \ --allow-no-subscriptions
Si noti che è stato incluso l'argomento
--allow-no-subscriptions
. In genere, quando si esegue il comandoaz login
, l'interfaccia della riga di comando di Azure cerca le sottoscrizioni di Azure a cui è possibile accedere. All'entità servizio non è ancora stato concesso l'accesso a nessuna sottoscrizione, quindi si usa l'argomento--allow-no-subscriptions
per impedire che l'interfaccia della riga di comando di Azure controlli l'elenco delle sottoscrizioni e visualizzi un errore.Controllare che l'output del comando precedente sia un oggetto JSON, che include una proprietà
user
con l'ID applicazione dell'entità servizio. Queste informazioni indicano che l'entità servizio ha eseguito correttamente l'accesso.Disconnettersi dall'account dell'entità servizio usando il comando seguente:
az logout
Eseguire questo comando di Azure PowerShell nel terminale di Visual Studio Code per chiedere in modo sicuro le credenziali dell'entità servizio. Usare l'ID applicazione e la chiave dell'entità servizio del passaggio precedente, rispettivamente come nome utente e password.
$credential = Get-Credential
Eseguire questo comando di Azure PowerShell nel terminale di Visual Studio Code per effettuare l'accesso usando le credenziali dell'entità servizio.
Connect-AzAccount -ServicePrincipal ` -Credential $credential ` -Tenant TENANT_ID
Controllare che l'output del comando precedente includa una proprietà
Account
con l'ID applicazione dell'entità servizio e un valoreSubscriptionName
vuoto. Queste informazioni indicano che l'entità servizio ha eseguito correttamente l'accesso.Disconnettersi dall'account dell'entità servizio usando il comando seguente:
Logout-AzAccount
Ora che si ha un'entità servizio funzionante, è possibile passare alla fase successiva, autorizzandone l'accesso all'ambiente Azure.