Fornire alle applicazioni di accedere allo Stack di AzureProvide applications access to Azure Stack

Si applica a: Azure Stack integrate di sistemi Azure Stack Development KitApplies to: Azure Stack integrated systems and Azure Stack Development Kit

Quando un'applicazione richiede l'accesso per distribuire o configurare le risorse tramite Gestione risorse di Azure nello Stack di Azure, si crea un servizio principale, ovvero una credenziale per l'applicazione.When an application needs access to deploy or configure resources through Azure Resource Manager in Azure Stack, you create a service principal, which is a credential for your application. È quindi possibile delegare solo le autorizzazioni necessarie a tale entità servizio.You can then delegate only the necessary permissions to that service principal.

Ad esempio, potrebbe essere uno strumento di configurazione di gestione che usa Azure Resource Manager per creare un inventario delle risorse di Azure.As an example, you may have a configuration management tool that uses Azure Resource Manager to inventory Azure resources. In questo scenario, è possibile creare un'entità servizio, concedere il ruolo di lettore a tale entità servizio e limitare lo strumento di Gestione configurazione per l'accesso in sola lettura.In this scenario, you can create a service principal, grant the reader role to that service principal, and limit the configuration management tool to read-only access.

Le entità servizio sono preferibili per l'esecuzione dell'applicazione con le proprie credenziali perché:Service principals are preferable to running the app under your own credentials because:

  • È possibile assegnare autorizzazioni per l'entità che sono diverse dalle proprie autorizzazioni dell'account servizio.You can assign permissions to the service principal that are different than your own account permissions. Tali autorizzazioni sono in genere limitate alle specifiche operazioni che devono essere eseguite dall'app.Typically, these permissions are restricted to exactly what the app needs to do.
  • Non è necessario modificare le credenziali dell'app in caso di cambiamento delle responsabilità dell'utente.You do not have to change the app's credentials if your responsibilities change.
  • È possibile usare un certificato per automatizzare l'autenticazione in caso di esecuzione di uno script automatico.You can use a certificate to automate authentication when executing an unattended script.

introduttivaGetting started

A seconda di come sono stati distribuiti dello Stack di Azure, è innanzitutto necessario creare un servizio principale.Depending on how you have deployed Azure Stack, you start by creating a service principal. Questo documento viene descritta la creazione di un'entità servizio per entrambi Azure Active Directory (Azure AD) e Active Directory Federation Services(AD FS).This document guides you through creating a service principal for both Azure Active Directory (Azure AD) and Active Directory Federation Services(AD FS). Dopo aver creato l'entità servizio, un set di passi comuni sia ADFS e Azure Active Directory vengono utilizzati per delegare le autorizzazioni al ruolo.Once you've created the service principal, a set of steps common to both AD FS and Azure Active Directory are used to delegate permissions to the role.

Creare l'entità servizio per Azure ADCreate service principal for Azure AD

Se è già distribuito Azure Stack mediante Azure AD come archivio di identità, è possibile creare le entità servizio, come se si trattasse di Azure.If you've deployed Azure Stack using Azure AD as the identity store, you can create service principals just like you do for Azure. In questa sezione viene illustrato come eseguire la procedura tramite il portale.This section shows you how to perform the steps through the portal. Verificare di disporre di necessarie autorizzazioni di Azure AD prima di iniziare.Check that you have the required Azure AD permissions before beginning.

Creare un'entità servizioCreate service principal

In questa sezione si crea un'applicazione (entità servizio) in Azure AD che rappresenta l'applicazione.In this section, you create an application (service principal) in Azure AD that represents your application.

  1. Accedere all'account di Azure tramite il portale di Azure.Log in to your Azure Account through the Azure portal.
  2. Selezionare Azure Active Directory > registrazioni di App > AggiungiSelect Azure Active Directory > App registrations > Add
  3. Specificare un nome e un URL per l'applicazione.Provide a name and URL for the application. Selezionare App Web/API o Nativa come tipo di applicazione da creare.Select either Web app / API or Native for the type of application you want to create. Dopo aver impostato i valori selezionare Crea.After setting the values, select Create.

È stato creato un'entità servizio per l'applicazione.You have created a service principal for your application.

Ottenere le credenzialiGet credentials

Durante l'accesso a livello di codice, utilizzare l'ID per l'applicazione e una chiave di autenticazione.When programmatically logging in, you use the ID for your application and an authentication key. Per ottenere questi valori eseguire la procedura seguente:To get those values, use the following steps:

  1. Da Registrazioni dell'app in Active Directory selezionare l'applicazione.From App registrations in Active Directory, select your application.

  2. Copiare l'ID applicazione e archiviarlo nel codice dell'applicazione.Copy the Application ID and store it in your application code. Le applicazioni nella sezione delle applicazioni di esempio indicano questo valore come ID client.The applications in the sample applications section refer to this value as the client ID.

    ID CLIENT

  3. Per generare una chiave di autenticazione selezionare Chiavi.To generate an authentication key, select Keys.

  4. Specificare una descrizione e una durata per la chiave.Provide a description of the key, and a duration for the key. Al termine scegliere Salva.When done, select Save.

Dopo aver salvato la chiave viene visualizzato il valore della chiave.After saving the key, the value of the key is displayed. Copiare il valore in quanto non sarà possibile recuperare la chiave in seguito.Copy this value because you are not able to retrieve the key later. Fornire il valore di chiave con l'ID applicazione di accedere come l'applicazione.You provide the key value with the application ID to sign as the application. Salvare il valore della chiave in una posizione in cui l'applicazione possa recuperarlo.Store the key value where your application can retrieve it.

chiave salvata

Al termine del processo, passare alla l'assegnazione di un ruolo applicazione.Once complete, proceed to assigning your application a role.

Creare l'entità servizio per ADFSCreate service principal for AD FS

Se è stato distribuito Azure Stack con AD FS, è possibile utilizzare PowerShell per creare un'entità servizio, assegnare un ruolo per l'accesso e accesso da PowerShell mediante tale identità.If you have deployed Azure Stack with AD FS, you can use PowerShell to create a service principal, assign a role for access, and sign in from PowerShell using that identity.

Lo script viene eseguito dall'endpoint con privilegi in una macchina virtuale ERCS.The script is run from the privileged endpoint on an ERCS virtual machine.

Requirements:Requirements:

  • È necessario un certificato.A certified is required.

ParametriParameters

Sono necessarie le seguenti informazioni come input per i parametri di automazione:The following information is required as input for the automation parameters:

ParametroParameter DescrizioneDescription EsempioExample
NomeName Nome dell'account del nome SPNName for the SPN account MyAPPMyAPP
ClientCertificatesClientCertificates Matrice di oggetti certificatoArray of certificate objects X509 certificatoX509 certificate
ClientRedirectUrisClientRedirectUris
Facoltativa(Optional)
URI di reindirizzamento dell'applicazioneApplication redirect URI

EsempioExample

  1. Aprire una sessione di Windows PowerShell con privilegi elevata ed eseguire i comandi seguenti:Open an elevated Windows PowerShell session, and run the following commands:

    Nota

    Questo esempio crea un certificato autofirmato.This example creates a self-signed certificate. Quando si eseguono questi comandi in una distribuzione di produzione, è possibile utilizzare Get-Certificate per recuperare l'oggetto certificato per il certificato che si desidera utilizzare.When you run these commands in a production deployment, use Get-Certificate to retrieve the certificate object for the certificate you want to use.

    $creds = Get-Credential
    
    $session = New-PSSession -ComputerName <IP Address of ECRS> -ConfigurationName PrivilegedEndpoint -Credential $creds
    
    $cert = New-SelfSignedCertificate -CertStoreLocation "cert:\CurrentUser\My" -Subject "CN=testspn2" -KeySpec KeyExchange
    
    Invoke-Command -Session $session -ScriptBlock { New-GraphApplication -Name 'MyApp' -ClientCertificates $using:cert}
    
    $session|remove-pssession
    
  2. Al termine dell'esecuzione dell'automazione, vengono visualizzati i dettagli necessari per utilizzare il nome SPN.After the automation finishes, it displays the required details to use the SPN.

    ad esempio:For example:

    ApplicationIdentifier : S-1-5-21-1512385356-3796245103-1243299919-1356
    ClientId              : 3c87e710-9f91-420b-b009-31fa9e430145
    Thumbprint            : 30202C11BE6864437B64CE36C8D988442082A0F1
    ApplicationName       : Azurestack-MyApp-c30febe7-1311-4fd8-9077-3d869db28342
    PSComputerName        : azs-ercs01
    RunspaceId            : a78c76bb-8cae-4db4-a45a-c1420613e01b
    

    Assegnare un ruoloAssign a role

    Una volta creata l'entità servizio, è necessario assegnarlo a un ruoloOnce the Service Principal is created, you must assign it to a role

Accedi tramite PowerShellSign in through PowerShell

Una volta assegnato un ruolo, è possibile accedere allo Stack di Azure usando l'entità servizio con il comando seguente:Once you've assigned a role, you can sign in to Azure Stack using the service principal with the following command:

Add-AzureRmAccount -EnvironmentName "<AzureStackEnvironmentName>" `
 -ServicePrincipal `
 -CertificateThumbprint $servicePrincipal.Thumbprint `
 -ApplicationId $servicePrincipal.ApplicationId ` 
 -TenantId $directoryTenantId

Assegnazione di ruolo a un'entità servizioAssign role to service principal

Per accedere alle risorse della propria sottoscrizione è necessario assegnare l'applicazione a un ruolo.To access resources in your subscription, you must assign the application to a role. Decidere quale ruolo rappresenti le autorizzazioni appropriate per l'applicazione.Decide which role represents the right permissions for the application. Per informazioni sui ruoli disponibili, vedere Controllo degli accessi in base al ruolo: ruoli predefiniti.To learn about the available roles, see RBAC: Built in Roles.

È possibile impostare l'ambito al livello della sottoscrizione, del gruppo di risorse o della risorsa.You can set the scope at the level of the subscription, resource group, or resource. Le autorizzazioni vengono ereditate a livelli inferiori dell'ambito.Permissions are inherited to lower levels of scope. Se ad esempio si aggiunge un'applicazione al ruolo Lettore per un gruppo di risorse, l'applicazione può leggere il gruppo di risorse e le risorse in esso contenute.For example, adding an application to the Reader role for a resource group means it can read the resource group and any resources it contains.

  1. Nel portale di Azure Stack, passare al livello di ambito che si desidera assegnare l'applicazione.In the Azure Stack portal, navigate to the level of scope you wish to assign the application to. Ad esempio, per assegnare un ruolo a un ambito della sottoscrizione, selezionare Sottoscrizioni.For example, to assign a role at the subscription scope, select Subscriptions. In alternativa è possibile selezionare una risorsa o un gruppo di risorse.You could instead select a resource group or resource.

  2. Selezionare la sottoscrizione specifica (risorsa o un gruppo di risorse) a cui assegnare l'applicazione.Select the particular subscription (resource group or resource) to assign the application to.

    selezionare la sottoscrizione per l'assegnazione

  3. Selezionare Controllo di accesso (IAM).Select Access Control (IAM).

    selezionare accesso

  4. Selezionare Aggiungi.Select Add.

  5. Selezionare il ruolo che si desidera assegnare all'applicazione.Select the role you wish to assign to the application.

  6. Cercare l'applicazione e selezionarla.Search for your application, and select it.

  7. Selezionare OK per completare l'assegnazione del ruolo.Select OK to finish assigning the role. L'applicazione ora compare nell'elenco degli utenti assegnati a un ruolo per quell'ambito.You see your application in the list of users assigned to a role for that scope.

Ora che hai creato un'entità servizio ed assegnato un ruolo, è possibile iniziare usando questa all'interno dell'applicazione di accedere alle risorse di Azure Stack.Now that you've created a service principal and assigned a role, you can begin using this within your application to access Azure Stack resources.

Passaggi successiviNext steps

Aggiungere utenti per ADFS gestire le autorizzazioni utenteAdd users for ADFS Manage user permissions