Creare un cluster di Service Fabric usando Azure Resource ManagerCreate a Service Fabric cluster by using Azure Resource Manager

Questo articolo contiene una guida dettagliata che illustra la configurazione di un cluster di Azure Service Fabric sicuro in Azure tramite Azure Resource Manager.This step-by-step guide walks you through setting up a secure Azure Service Fabric cluster in Azure by using Azure Resource Manager. Anche se l'articolo è lungo,We acknowledge that the article is long. a meno che non si conosca già a fondo il contenuto, assicurarsi di seguire con attenzione ogni passaggio.Nevertheless, unless you are already thoroughly familiar with the content, be sure to follow each step carefully.

La guida illustra le procedure seguenti:The guide covers the following procedures:

  • Configurazione di un insieme di credenziali delle chiavi di Azure per caricare certificati per la sicurezza di cluster e applicazioniSetting up an Azure key vault to upload certificates for cluster and application security
  • Creazione di un cluster sicuro in Azure con Azure Resource ManagerCreating a secured cluster in Azure by using Azure Resource Manager
  • Autenticazione degli utenti con Azure Active Directory (Azure AD) per la gestione dei clusterAuthenticating users by using Azure Active Directory (Azure AD) for cluster management

Un cluster sicuro impedisce l'accesso non autorizzato alle operazioni di gestione,A secure cluster is a cluster that prevents unauthorized access to management operations. tra cui distribuzione, aggiornamento ed eliminazione di applicazioni e servizi e dei dati contenuti.This includes deploying, upgrading, and deleting applications, services, and the data they contain. Un cluster non protetto è un cluster a cui tutti gli utenti possono connettersi in qualsiasi momento ed eseguire operazioni di gestione.An unsecure cluster is a cluster that anyone can connect to at any time and perform management operations. Anche se è possibile creare un cluster non sicuro, è consigliabile creare un cluster sicuro fin dall'inizio.Although it is possible to create an unsecure cluster, we highly recommend that you create a secure cluster from the outset. Poiché un cluster non sicuro non può essere protetto in un secondo momento, è necessario crearne uno nuovo.Because an unsecure cluster cannot be secured later, a new cluster must be created.

Il concetto di creazione di cluster sicuri è lo stesso per i cluster sia Linux che Windows.The concept of creating secure clusters is the same, whether they are Linux or Windows clusters. Per altre informazioni e script helper per la creazione di cluster Linux sicuri, vedere Creare cluster protetti in Linux.For more information and helper scripts for creating secure Linux clusters, see Creating secure clusters on Linux.

Accedere con l'account AzureSign in to your Azure account

Questa guida usa Azure PowerShell.This guide uses Azure PowerShell. Quando si avvia una nuova sessione di PowerShell, accedere al proprio account Azure e selezionare la sottoscrizione prima di eseguire i comandi di Azure.When you start a new PowerShell session, sign in to your Azure account and select your subscription before you execute Azure commands.

Accedere all'account Azure:Sign in to your Azure account:

Login-AzureRmAccount

Selezionare la propria sottoscrizione:Select your subscription:

Get-AzureRmSubscription
Set-AzureRmContext -SubscriptionId <guid>

Configurare un insieme di credenziali delle chiaviSet up a key vault

Questa sezione illustra la creazione di un insieme di credenziali delle chiavi per un cluster di Service Fabric in Azure e per le applicazioni di Service Fabric.This section discusses creating a key vault for a Service Fabric cluster in Azure and for Service Fabric applications. Per una guida completa su Azure Key Vault, vedere la guida introduttiva a Key Vault.For a complete guide to Azure Key Vault, refer to the Key Vault getting started guide.

Service Fabric usa certificati X.509 per proteggere un cluster e fornire le funzionalità di sicurezza dell'applicazione.Service Fabric uses X.509 certificates to secure a cluster and provide application security features. Si usa Key Vault per gestire i certificati dei cluster di Service Fabric in Azure.You use Key Vault to manage certificates for Service Fabric clusters in Azure. Quando viene distribuito un cluster in Azure, il provider di risorse di Azure responsabile della creazione di cluster Service Fabric estrae i certificati da Key Vault e li installa nelle macchine virtuali del cluster.When a cluster is deployed in Azure, the Azure resource provider that's responsible for creating Service Fabric clusters pulls certificates from Key Vault and installs them on the cluster VMs.

Nel diagramma seguente viene illustrata la relazione tra Azure Key Vault, un cluster di Service Fabric e il provider di risorse di Azure che usa i certificati archiviati in un insieme di credenziali delle chiavi durante la creazione di un cluster:The following diagram illustrates the relationship between Azure Key Vault, a Service Fabric cluster, and the Azure resource provider that uses certificates stored in a key vault when it creates a cluster:

Diagramma dell'installazione del certificato

Creare un gruppo di risorseCreate a resource group

Il primo passaggio consiste nel creare un gruppo di risorse specifico per l'insieme di credenziali delle chiavi.The first step is to create a resource group specifically for your key vault. È consigliabile inserire l'insieme di credenziali delle chiavi in un proprio gruppo di risorse.We recommend that you put the key vault into its own resource group. Questa azione consente di rimuovere i gruppi di risorse di calcolo e di archiviazione, incluso il gruppo di risorse contenente il cluster di Service Fabric, senza perdere le chiavi e i segreti.This action lets you remove the compute and storage resource groups, including the resource group that contains your Service Fabric cluster, without losing your keys and secrets. Il gruppo di risorse che contiene l'insieme di credenziali delle chiavi deve essere situato nella stessa area del cluster che lo usa.The resource group that contains your key vault must be in the same region as the cluster that is using it.

Se si prevede di distribuire i cluster in più aree, è consigliabile assegnare al gruppo di risorse e all'insieme di credenziali delle chiavi un nome indicante a quale area appartiene.If you plan to deploy clusters in multiple regions, we suggest that you name the resource group and the key vault in a way that indicates which region it belongs to.


    New-AzureRmResourceGroup -Name westus-mykeyvault -Location 'West US'

L'output dovrebbe essere simile al seguente:The output should look like this:


    WARNING: The output object type of this cmdlet is going to be modified in a future release.

    ResourceGroupName : westus-mykeyvault
    Location          : westus
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/<guid>/resourceGroups/westus-mykeyvault

Creare un insieme di credenziali delle chiavi nel nuovo gruppo di risorseCreate a key vault in the new resource group

L'insieme di credenziali delle chiavi deve essere abilitato per la distribuzione per consentire al provider di risorse di calcolo di ottenere i certificati e installarli nelle istanze delle macchine virtuali:The key vault must be enabled for deployment to allow the compute resource provider to get certificates from it and install it on virtual machine instances:


    New-AzureRmKeyVault -VaultName 'mywestusvault' -ResourceGroupName 'westus-mykeyvault' -Location 'West US' -EnabledForDeployment

L'output dovrebbe essere simile al seguente:The output should look like this:


    Vault Name                       : mywestusvault
    Resource Group Name              : westus-mykeyvault
    Location                         : West US
    Resource ID                      : /subscriptions/<guid>/resourceGroups/westus-mykeyvault/providers/Microsoft.KeyVault/vaults/mywestusvault
    Vault URI                        : https://mywestusvault.vault.azure.net
    Tenant ID                        : <guid>
    SKU                              : Standard
    Enabled For Deployment?          : False
    Enabled For Template Deployment? : False
    Enabled For Disk Encryption?     : False
    Access Policies                  :
                                       Tenant ID                :    <guid>
                                       Object ID                :    <guid>
                                       Application ID           :
                                       Display Name             :    
                                       Permissions to Keys      :    get, create, delete, list, update, import, backup, restore
                                       Permissions to Secrets   :    all


    Tags                             :

Usare un insieme di credenziali delle chiavi esistenteUse an existing key vault

Per usare un insieme di credenziali delle chiavi esistente, è necessario abilitarlo per la distribuzione per consentire al provider di risorse di calcolo di ottenere i certificati e installarli nei nodi del cluster:To use an existing key vault, you must enable it for deployment to allow the compute resource provider to get certificates from it and install it on cluster nodes:


Set-AzureRmKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -EnabledForDeployment

Aggiungere i certificati all'insieme di credenziali delle chiaviAdd certificates to your key vault

I certificati vengono usati in Service Fabric per fornire l'autenticazione e la crittografia e proteggere i vari aspetti di un cluster e delle sue applicazioni.Certificates are used in Service Fabric to provide authentication and encryption to secure various aspects of a cluster and its applications. Per altre informazioni sull'uso dei certificati in Service Fabric, vedere Scenari di sicurezza di un cluster di Service Fabric.For more information on how certificates are used in Service Fabric, see Service Fabric cluster security scenarios.

Cluster e certificato del server (obbligatorio)Cluster and server certificate (required)

Questo certificato è richiesto per proteggere un cluster e impedirne accessi non autorizzati.This certificate is required to secure a cluster and prevent unauthorized access to it. Il certificato fornisce protezione del cluster in due modi:It provides cluster security in two ways:

  • Autenticazione del cluster: autentica la comunicazione da nodo a nodo per la federazione di cluster.Cluster authentication: Authenticates node-to-node communication for cluster federation. Solo i nodi che possono dimostrare la propria identità con il certificato possono essere aggiunti al cluster.Only nodes that can prove their identity with this certificate can join the cluster.
  • Autenticazione del server: autentica gli endpoint di gestione del cluster in un client di gestione, in modo che il client di gestione sappia con certezza di comunicare con il cluster reale.Server authentication: Authenticates the cluster management endpoints to a management client, so that the management client knows it is talking to the real cluster. Questo certificato fornisce anche un certificato SSL per l'API di gestione HTTPS e per Service Fabric Explorer tramite HTTPS.This certificate also provides an SSL for the HTTPS management API and for Service Fabric Explorer over HTTPS.

A tale scopo, il certificato deve soddisfare i requisiti seguenti:To serve these purposes, the certificate must meet the following requirements:

  • Il certificato deve includere una chiave privata.The certificate must contain a private key.
  • Il certificato deve essere stato creato per lo scambio di chiave, esportabile in un file con estensione pfx (Personal Information Exchange).The certificate must be created for key exchange, which is exportable to a Personal Information Exchange (.pfx) file.
  • Il nome del soggetto del certificato deve corrispondere al dominio usato per accedere al cluster di Service Fabric.The certificate's subject name must match the domain that you use to access the Service Fabric cluster. Questa corrispondenza è necessaria per fornire un certificato SSL per gli endpoint di gestione HTTPS del cluster e Service Fabric Explorer.This matching is required to provide an SSL for the cluster's HTTPS management endpoints and Service Fabric Explorer. Non è possibile ottenere un certificato SSL da un'Autorità di certificazione (CA) per il dominio .cloudapp.azure.com.You cannot obtain an SSL certificate from a certificate authority (CA) for the .cloudapp.azure.com domain. È necessario ottenere un nome di dominio personalizzato per il cluster.You must obtain a custom domain name for your cluster. Quando si richiede un certificato da una CA, il nome del soggetto del certificato deve corrispondere al nome di dominio personalizzato usato per il cluster.When you request a certificate from a CA, the certificate's subject name must match the custom domain name that you use for your cluster.

Certificati delle applicazioni (facoltativo)Application certificates (optional)

Per motivi di sicurezza dell'applicazione, è possibile installare nel cluster numerosi certificati aggiuntivi.Any number of additional certificates can be installed on a cluster for application security purposes. Prima di creare il cluster, considerare gli scenari di protezione delle applicazioni che richiedono l'installazione di un certificato sui nodi, ad esempio:Before creating your cluster, consider the application security scenarios that require a certificate to be installed on the nodes, such as:

  • Crittografia e decrittografia dei valori di configurazione dell'applicazione.Encryption and decryption of application configuration values.
  • Crittografia dei dati tra i nodi durante la replica.Encryption of data across nodes during replication.

Formattazione dei certificati per l'uso di provider di risorse di AzureFormatting certificates for Azure resource provider use

È possibile aggiungere e usare file di chiave privata (PFX) direttamente tramite l'insieme di credenziali delle chiavi.You can add and use private key files (.pfx) directly through your key vault. Il provider di risorse di calcolo di Azure richiede tuttavia che le chiavi vengano archiviate in uno speciale formato JSON (JavaScript Object Notation).However, the Azure compute resource provider requires keys to be stored in a special JavaScript Object Notation (JSON) format. Il formato include il file PFX come stringa con codifica Base 64 e la password della chiave privata.The format includes the .pfx file as a base 64-encoded string and the private key password. Per soddisfare questi requisiti, le chiavi devono essere inserite in una stringa JSON e quindi archiviate come "segreti" nell'insieme di credenziali delle chiavi.To accommodate these requirements, the keys must be placed in a JSON string and then stored as "secrets" in the key vault.

Per semplificare questo processo, è disponibile su GitHub un modulo di PowerShell.To make this process easier, a PowerShell module is available on GitHub. Per usare il modulo, seguire questa procedura:To use the module, do the following:

  1. Scaricare l'intero contenuto del repository in una directory locale.Download the entire contents of the repo into a local directory.
  2. Andare alla directory locale.Go to the local directory.
  3. Importare il modulo ServiceFabricRPHelpers nella finestra di PowerShell:Import the ServiceFabricRPHelpers module in your PowerShell window:

 Import-Module "C:\..\ServiceFabricRPHelpers\ServiceFabricRPHelpers.psm1"

Il comando Invoke-AddCertToKeyVault in questo modulo di PowerShell formatta in modo automatico una chiave privata del certificato in una stringa JSON e la carica nell'insieme di credenziali delle chiavi.The Invoke-AddCertToKeyVault command in this PowerShell module automatically formats a certificate private key into a JSON string and uploads it to the key vault. Usare il comando per aggiungere il certificato del cluster ed eventuali altri certificati delle applicazioni all'insieme di credenziali delle chiavi.Use the command to add the cluster certificate and any additional application certificates to the key vault. Ripetere questo passaggio per tutti i certificati aggiuntivi che si vuole installare nel cluster.Repeat this step for any additional certificates you want to install in your cluster.

Caricamento di un certificato esistenteUploading an existing certificate


 Invoke-AddCertToKeyVault -SubscriptionId <guid> -ResourceGroupName westus-mykeyvault -Location "West US" -VaultName mywestusvault -CertificateName mycert -Password "<password>" -UseExistingCertificate -ExistingPfxFilePath "C:\path\to\mycertkey.pfx"

Se si verifica un errore, come quello illustrato qui, in genere significa che è presente un conflitto tra URL di risorsa.If you get an error, such as the one shown here, it usually means that you have a resource URL conflict. Per risolvere il conflitto, modificare il nome dell'insieme di credenziali delle chiavi.To resolve the conflict, change the key vault name.

Set-AzureKeyVaultSecret : The remote name could not be resolved: 'westuskv.vault.azure.net'
At C:\Users\chackdan\Documents\GitHub\Service-Fabric\Scripts\ServiceFabricRPHelpers\ServiceFabricRPHelpers.psm1:440 char:11
+ $secret = Set-AzureKeyVaultSecret -VaultName $VaultName -Name $Certif ...
+           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Set-AzureKeyVaultSecret], WebException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.KeyVault.SetAzureKeyVaultSecret

Dopo avere risolto il conflitto, l'output sarà il seguente:After the conflict is resolved, the output should look like this:


    Switching context to SubscriptionId <guid>
    Ensuring ResourceGroup westus-mykeyvault in West US
    WARNING: The output object type of this cmdlet is going to be modified in a future release.
    Using existing value mywestusvault in West US
    Reading pfx file from C:\path\to\key.pfx
    Writing secret to mywestusvault in vault mywestusvault


Name  : CertificateThumbprint
Value : E21DBC64B183B5BF355C34C46E03409FEEAEF58D

Name  : SourceVault
Value : /subscriptions/<guid>/resourceGroups/westus-mykeyvault/providers/Microsoft.KeyVault/vaults/mywestusvault

Name  : CertificateURL
Value : https://mywestusvault.vault.azure.net:443/secrets/mycert/4d087088df974e869f1c0978cb100e47

Nota

Sono necessarie le tre stringhe precedenti, CertificateThumbprint, SourceVault e CertificateURL, per configurare un cluster di Service Fabric sicuro e per ottenere i certificati dell'applicazione che potrebbero essere usati per la sicurezza dell'applicazione.You need the three preceding strings, CertificateThumbprint, SourceVault, and CertificateURL, to set up a secure Service Fabric cluster and to obtain any application certificates that you might be using for application security. Se non si salvano le stringhe, può essere difficile recuperarle in seguito effettuando una query dell'insieme di credenziali delle chiavi.If you do not save the strings, it can be difficult to retrieve them by querying the key vault later.

Creazione di un certificato autofirmato e caricamento nell'insieme di credenziali delle chiaviCreating a self-signed certificate and uploading it to the key vault

Se i certificati sono già stati caricati nell'insieme di credenziali delle chiavi, saltare questo passaggioIf you have already uploaded your certificates to the key vault, skip this step. che serve a generare un nuovo certificato autofirmato e a caricarlo nell'insieme di credenziali delle chiavi.This step is for generating a new self-signed certificate and uploading it to your key vault. Dopo avere modificato i parametri nello script seguente e averlo eseguito, verrà chiesta una password per il certificato.After you change the parameters in the following script and then run it, you should be prompted for a certificate password.


$ResourceGroup = "chackowestuskv"
$VName = "chackokv2"
$SubID = "6c653126-e4ba-42cd-a1dd-f7bf96ae7a47"
$locationRegion = "westus"
$newCertName = "chackotestcertificate1"
$dnsName = "www.mycluster.westus.mydomain.com" #The certificate's subject name must match the domain used to access the Service Fabric cluster.
$localCertPath = "C:\MyCertificates" # location where you want the .PFX to be stored

 Invoke-AddCertToKeyVault -SubscriptionId $SubID -ResourceGroupName $ResourceGroup -Location $locationRegion -VaultName $VName -CertificateName $newCertName -CreateSelfSignedCertificate -DnsName $dnsName -OutputPath $localCertPath

Se si verifica un errore, come quello illustrato qui, in genere significa che è presente un conflitto tra URL di risorsa.If you get an error, such as the one shown here, it usually means that you have a resource URL conflict. Per risolvere il conflitto, modificare il nome dell'insieme di credenziali delle chiavi, il nome del gruppo di risorse e così via.To resolve the conflict, change the key vault name, RG name, and so forth.

Set-AzureKeyVaultSecret : The remote name could not be resolved: 'westuskv.vault.azure.net'
At C:\Users\chackdan\Documents\GitHub\Service-Fabric\Scripts\ServiceFabricRPHelpers\ServiceFabricRPHelpers.psm1:440 char:11
+ $secret = Set-AzureKeyVaultSecret -VaultName $VaultName -Name $Certif ...
+           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Set-AzureKeyVaultSecret], WebException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.KeyVault.SetAzureKeyVaultSecret

Dopo avere risolto il conflitto, l'output sarà il seguente:After the conflict is resolved, the output should look like this:

PS C:\Users\chackdan\Documents\GitHub\Service-Fabric\Scripts\ServiceFabricRPHelpers> Invoke-AddCertToKeyVault -SubscriptionId $SubID -ResourceGroupName $ResouceGroup -Location $locationRegion -VaultName $VName -CertificateName $newCertName -Password $certPassword -CreateSelfSignedCertificate -DnsName $dnsName -OutputPath $localCertPath
Switching context to SubscriptionId 6c343126-e4ba-52cd-a1dd-f8bf96ae7a47
Ensuring ResourceGroup chackowestuskv in westus
WARNING: The output object type of this cmdlet will be modified in a future release.
Creating new vault westuskv1 in westus
Creating new self signed certificate at C:\MyCertificates\chackonewcertificate1.pfx
Reading pfx file from C:\MyCertificates\chackonewcertificate1.pfx
Writing secret to chackonewcertificate1 in vault westuskv1


Name  : CertificateThumbprint
Value : 96BB3CC234F9D43C25D4B547sd8DE7B569F413EE

Name  : SourceVault
Value : /subscriptions/6c653126-e4ba-52cd-a1dd-f8bf96ae7a47/resourceGroups/chackowestuskv/providers/Microsoft.KeyVault/vaults/westuskv1

Name  : CertificateURL
Value : https://westuskv1.vault.azure.net:443/secrets/chackonewcertificate1/ee247291e45d405b8c8bbf81782d12bd

Nota

Sono necessarie le tre stringhe precedenti, CertificateThumbprint, SourceVault e CertificateURL, per configurare un cluster di Service Fabric sicuro e per ottenere i certificati dell'applicazione che potrebbero essere usati per la sicurezza dell'applicazione.You need the three preceding strings, CertificateThumbprint, SourceVault, and CertificateURL, to set up a secure Service Fabric cluster and to obtain any application certificates that you might be using for application security. Se non si salvano le stringhe, può essere difficile recuperarle in seguito effettuando una query dell'insieme di credenziali delle chiavi.If you do not save the strings, it can be difficult to retrieve them by querying the key vault later.

A questo punto, dovrebbero essere visualizzati gli elementi seguenti:At this point, you should have the following elements in place:

  • Gruppo di risorse dell'insieme di credenziali delle chiavi.The key vault resource group.
  • Insieme di credenziali delle chiavi e URL (denominato SourceVault nell'output di PowerShell precedente).The key vault and its URL (called SourceVault in the preceding PowerShell output).
  • Certificato di autenticazione server del cluster e URL nell'insieme di credenziali delle chiavi.The cluster server authentication certificate and its URL in the key vault.
  • Certificati dell'applicazione e URL nell'insieme di credenziali delle chiavi.The application certificates and their URLs in the key vault.

Configurare Azure Active Directory per l'autenticazione clientSet up Azure Active Directory for client authentication

Azure AD consente alle organizzazioni (note come tenant) di gestire l'accesso utenti alle applicazioni.Azure AD enables organizations (known as tenants) to manage user access to applications. Alcune applicazioni sono caratterizzate da un'interfaccia utente di accesso basata sul Web, altre invece da un'esperienza client nativa.Applications are divided into those with a web-based sign-in UI and those with a native client experience. In questo articolo si presuppone che sia già stato creato un tenant.In this article, we assume that you have already created a tenant. In caso contrario, vedere prima di tutto Come ottenere un tenant di Azure Active Directory.If you have not, start by reading How to get an Azure Active Directory tenant.

I cluster di Service Fabric offrono numerosi punti di ingresso alle relative funzionalità di gestione, tra cui Service Fabric Explorer, basato sul Web, e Visual Studio.A Service Fabric cluster offers several entry points to its management functionality, including the web-based Service Fabric Explorer and Visual Studio. Verranno quindi create due applicazioni Azure AD per controllare l'accesso al cluster, un'applicazione Web e un'applicazione nativa.As a result, you create two Azure AD applications to control access to the cluster, one web application and one native application.

Per semplificare alcuni dei passaggi richiesti per la configurazione di Azure AD con un cluster di Service Fabric è stato creato un set di script di Windows PowerShell.To simplify some of the steps involved in configuring Azure AD with a Service Fabric cluster, we have created a set of Windows PowerShell scripts.

Nota

È necessario completare i passaggi seguenti prima di creare il cluster.You must complete the following steps before you create the cluster. Poiché per gli script sono previsti nomi ed endpoint dei cluster, i valori devono essere pianificati e non quelli già creati.Because the scripts expect cluster names and endpoints, the values should be planned and not values that you have already created.

  1. Scaricare gli script nel computer.Download the scripts to your computer.
  2. Fare clic con il pulsante destro del mouse sul file ZIP, scegliere Proprietà, selezionare la casella di controllo Sblocca e quindi fare clic su Applica.Right-click the zip file, select Properties, select the Unblock check box, and then click Apply.
  3. Estrarre il file con estensione zip.Extract the zip file.
  4. Eseguire SetupApplications.ps1 e indicare i parametri TenantId, ClusterName e WebApplicationReplyUrl.Run SetupApplications.ps1, and provide the TenantId, ClusterName, and WebApplicationReplyUrl as parameters. ad esempio:For example:

    .\SetupApplications.ps1 -TenantId '690ec069-8200-4068-9d01-5aaf188e557a' -ClusterName 'mycluster' -WebApplicationReplyUrl 'https://mycluster.westus.cloudapp.azure.com:19080/Explorer/index.html'
    

    È possibile trovare il TenantId eseguendo il comando di PowerShell Get-AzureSubscription.You can find your TenantId by executing the PowerShell command Get-AzureSubscription. Eseguendo questo comando, viene visualizzato il TenantId per ogni sottoscrizione.Executing this command displays the TenantId for every subscription.

    ClusterName viene usato come prefisso per le applicazioni Azure AD create dallo script.ClusterName is used to prefix the Azure AD applications that are created by the script. Non è necessario che corrisponda esattamente al nome effettivo del cluster.It does not need to match the actual cluster name exactly. Ha solo lo scopo di facilitare il mapping degli elementi di Azure AD al cluster di Service Fabric con cui vengono usati.It is intended only to make it easier to map Azure AD artifacts to the Service Fabric cluster that they're being used with.

    WebApplicationReplyUrl è l'endpoint predefinito che Azure AD restituisce agli utenti dopo che hanno completato l'accesso.WebApplicationReplyUrl is the default endpoint that Azure AD returns to your users after they finish signing in. Impostare questo endpoint come endpoint di Service Fabric Explorer per il cluster, che per impostazione predefinita è:Set this endpoint as the Service Fabric Explorer endpoint for your cluster, which by default is:

    https://<cluster_domain>:19080/Explorerhttps://<cluster_domain>:19080/Explorer

    Verrà richiesto di accedere a un account con privilegi amministrativi per il tenant Azure AD.You are prompted to sign in to an account that has administrative privileges for the Azure AD tenant. Dopo avere eseguito l'accesso, lo script crea l'applicazione Web e l'applicazione nativa per rappresentare il cluster di Service Fabric.After you sign in, the script creates the web and native applications to represent your Service Fabric cluster. Tra le applicazioni del tenant nel portale di Azure classico dovrebbero essere visualizzate due nuove voci:If you look at the tenant's applications in the Azure classic portal, you should see two new entries:

    • ClusterName_ClusterClusterName_Cluster
    • ClusterName_ClientClusterName_Client

    È consigliabile tenere aperta la finestra di PowerShell perché, durante la creazione del cluster nella sezione successiva, lo script stamperà il codice JSON richiesto dal modello di Azure Resource Manager.The script prints the JSON required by the Azure Resource Manager template when you create the cluster in the next section, so it's a good idea to keep the PowerShell window open.

"azureActiveDirectory": {
  "tenantId":"<guid>",
  "clusterApplication":"<guid>",
  "clientApplication":"<guid>"
},

Creare un modello di Cluster Resource Manager di Service FabricCreate a Service Fabric cluster Resource Manager template

In questa sezione, gli output dei comandi di PowerShell precedenti verranno usati in un modello di Resource Manager per cluster di Service Fabric.In this section, the outputs of the preceding PowerShell commands are used in a Service Fabric cluster Resource Manager template.

Nella raccolta di modelli di avvio rapido di Azure in GitHub sono disponibili alcuni modelli di Resource Manager di esempio.Sample Resource Manager templates are available in the Azure quick-start template gallery on GitHub. Questi modelli possono essere usati come punto di partenza per il modello del cluster.These templates can be used as a starting point for your cluster template.

Creare il modello di Azure Resource ManagerCreate the Resource Manager template

Questa guida usa il modello di esempio di un cluster protetto a 5 nodi e i relativi parametri.This guide uses the 5-node secure cluster example template and template parameters. Scaricare azuredeploy.json e azuredeploy.parameters.json sul computer e aprire entrambi i file in un editor di testo.Download azuredeploy.json and azuredeploy.parameters.json to your computer and open both files in your favorite text editor.

Aggiungere certificatiAdd certificates

I certificati vengono aggiunti a un modello di Resource Manager per cluster facendo riferimento all'insieme di credenziali delle chiavi che contiene le chiavi del certificato.You add certificates to a cluster Resource Manager template by referencing the key vault that contains the certificate keys. È consigliabile inserire i valori dell'insieme di credenziali delle chiavi in un file di parametri del modello di Resource Manager.We recommend that you place the key-vault values in a Resource Manager template parameters file. In questo modo, il file di modello di Resource Manager è riutilizzabile e non contiene valori specifici di una distribuzione.Doing so keeps the Resource Manager template file reusable and free of values specific to a deployment.

Aggiungere tutti i certificati all'elemento osProfile del set di scalabilità di macchine virtualiAdd all certificates to the virtual machine scale set osProfile

Ogni certificato che viene installato nel cluster deve essere configurato nella sezione osProfile della risorsa del set di scalabilità (Microsoft.Compute/virtualMachineScaleSets).Every certificate that's installed in the cluster must be configured in the osProfile section of the scale set resource (Microsoft.Compute/virtualMachineScaleSets). Questa azione indica al provider di risorse di installare il certificato nelle macchine virtuali,This action instructs the resource provider to install the certificate on the VMs. includendo sia il certificato del cluster che eventuali certificati di sicurezza dell'applicazione che si intende usare per le applicazioni:This installation includes both the cluster certificate and any application security certificates that you plan to use for your applications:

{
  "apiVersion": "2016-03-30",
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  ...
  "properties": {
    ...
    "osProfile": {
      ...
      "secrets": [
        {
          "sourceVault": {
            "id": "[parameters('sourceVaultValue')]"
          },
          "vaultCertificates": [
            {
              "certificateStore": "[parameters('clusterCertificateStorevalue')]",
              "certificateUrl": "[parameters('clusterCertificateUrlValue')]"
            },
            {
              "certificateStore": "[parameters('applicationCertificateStorevalue')",
              "certificateUrl": "[parameters('applicationCertificateUrlValue')]"
            },
            ...
          ]
        }
      ]
    }
  }
}

Configurare il certificato del cluster di Service FabricConfigure the Service Fabric cluster certificate

Il certificato di autenticazione del cluster deve essere configurato sia nella risorsa del cluster di Service Fabric (Microsoft.ServiceFabric/clusters) che nell'estensione di Service Fabric per i set di scalabilità di macchine virtuali nella risorsa del set di scalabilità di macchine virtuali.The cluster authentication certificate must be configured in both the Service Fabric cluster resource (Microsoft.ServiceFabric/clusters) and the Service Fabric extension for virtual machine scale sets in the virtual machine scale set resource. Questa disposizione consente al provider di risorse di Service Fabric di configurarlo per l'uso dell'autenticazione del cluster e del server per gli endpoint di gestione.This arrangement allows the Service Fabric resource provider to configure it for use for cluster authentication and server authentication for management endpoints.

Risorsa del set di scalabilità di macchine virtuali:Virtual machine scale set resource:
{
  "apiVersion": "2016-03-30",
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  ...
  "properties": {
    ...
    "virtualMachineProfile": {
      "extensionProfile": {
        "extensions": [
          {
            "name": "[concat('ServiceFabricNodeVmExt','_vmNodeType0Name')]",
            "properties": {
              ...
              "settings": {
                ...
                "certificate": {
                  "thumbprint": "[parameters('clusterCertificateThumbprint')]",
                  "x509StoreName": "[parameters('clusterCertificateStoreValue')]"
                },
                ...
              }
            }
          }
        ]
      }
    }
  }
}
Risorsa di Service Fabric:Service Fabric resource:
{
  "apiVersion": "2016-03-01",
  "type": "Microsoft.ServiceFabric/clusters",
  "name": "[parameters('clusterName')]",
  "location": "[parameters('clusterLocation')]",
  "dependsOn": [
    "[concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName'))]"
  ],
  "properties": {
    "certificate": {
      "thumbprint": "[parameters('clusterCertificateThumbprint')]",
      "x509StoreName": "[parameters('clusterCertificateStoreValue')]"
    },
    ...
  }
}

Inserire la configurazione di Azure ADInsert Azure AD configuration

La configurazione di Azure AD creata prima può essere inserita nel modello di Resource Manager.The Azure AD configuration that you created earlier can be inserted directly into your Resource Manager template. È tuttavia consigliabile estrarre prima i valori in un file di parametri in modo che il modello di Resource Manager sia riutilizzabile e non contenga valori specifici di una distribuzione.However, we recommended that you first extract the values into a parameters file to keep the Resource Manager template reusable and free of values specific to a deployment.

{
  "apiVersion": "2016-03-01",
  "type": "Microsoft.ServiceFabric/clusters",
  "name": "[parameters('clusterName')]",
  ...
  "properties": {
    "certificate": {
      "thumbprint": "[parameters('clusterCertificateThumbprint')]",
      "x509StoreName": "[parameters('clusterCertificateStorevalue')]"
    },
    ...
    "azureActiveDirectory": {
      "tenantId": "[parameters('aadTenantId')]",
      "clusterApplication": "[parameters('aadClusterApplicationId')]",
      "clientApplication": "[parameters('aadClientApplicationId')]"
    },
    ...
  }
}

<a "configure-arm" >Configurare i parametri del modello di Resource ManagerConfigure Resource Manager template parameters

Infine, usare i valori di output dei comandi di PowerShell per Azure AD e dell'insieme di credenziali delle chiavi per compilare il file dei parametri:Finally, use the output values from the key vault and Azure AD PowerShell commands to populate the parameters file:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        ...
        "clusterCertificateStoreValue": {
            "value": "My"
        },
        "clusterCertificateThumbprint": {
            "value": "<thumbprint>"
        },
        "clusterCertificateUrlValue": {
            "value": "https://myvault.vault.azure.net:443/secrets/myclustercert/4d087088df974e869f1c0978cb100e47"
        },
        "applicationCertificateStorevalue": {
            "value": "My"
        },
        "applicationCertificateUrlValue": {
            "value": "https://myvault.vault.azure.net:443/secrets/myapplicationcert/2e035058ae274f869c4d0348ca100f08"
        },
        "sourceVaultvalue": {
            "value": "/subscriptions/<guid>/resourceGroups/mycluster-keyvault/providers/Microsoft.KeyVault/vaults/myvault"
        },
        "aadTenantId": {
            "value": "<guid>"
        },
        "aadClusterApplicationId": {
            "value": "<guid>"
        },
        "aadClientApplicationId": {
            "value": "<guid>"
        },
        ...
    }
}

A questo punto, dovrebbero essere visualizzati gli elementi seguenti:At this point, you should have the following elements in place:

  • Gruppo di risorse dell'insieme di credenziali delle chiaviKey vault resource group
    • Insieme di credenziali delle chiaviKey vault
    • Certificato di autenticazione del server del clusterCluster server authentication certificate
    • Certificato di crittografia dei datiData encipherment certificate
  • Tenant di Azure Active DirectoryAzure Active Directory tenant
    • Applicazione Azure AD per la gestione basata su Web e Service Fabric ExplorerAzure AD application for web-based management and Service Fabric Explorer
    • Applicazione Azure AD per la gestione dei client nativiAzure AD application for native client management
    • Utenti e ruoli assegnatiUsers and their assigned roles
  • Modello di Cluster Resource Manager di Service FabricService Fabric cluster Resource Manager template
    • Certificati configurati tramite l'insieme di credenziali delle chiaviCertificates configured through key vault
    • Azure Active Directory configuratoAzure Active Directory configured

Il diagramma seguente illustra i punti in cui la configurazione dell'insieme di credenziali delle chiavi e di Azure AD rientra nel modello di Resource Manager.The following diagram illustrates where your key vault and Azure AD configuration fit into your Resource Manager template.

Mappa di dipendenza di Resource Manager

Creare il clusterCreate the cluster

A questo punto si è pronti per creare il cluster usando la distribuzione del modello di risorsa di Azure.You are now ready to create the cluster by using Azure resource template deployment.

Eseguirne il testTest it

Usare il comando PowerShell seguente per testare il modello di Resource Manager con un file di parametri:Use the following PowerShell command to test your Resource Manager template with a parameters file:

Test-AzureRmResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json

DistribuirloDeploy it

Se viene superato il test del modello di Resource Manager, usare il comando PowerShell seguente per distribuire il modello di Resource Manager con un file di parametri:If the Resource Manager template test passes, use the following PowerShell command to deploy your Resource Manager template with a parameters file:

New-AzureRmResourceGroupDeployment -ResourceGroupName "myresourcegroup" -TemplateFile .\azuredeploy.json -TemplateParameterFile .\azuredeploy.parameters.json

Assegnare utenti ai ruoliAssign users to roles

Dopo aver creato le applicazioni per rappresentare il cluster, assegnare gli utenti ai ruoli supportati da Service Fabric: sola lettura e amministratore. È possibile assegnare i ruoli usando il portale di Azure classico.After you have created the applications to represent your cluster, assign your users to the roles supported by Service Fabric: read-only and admin. You can assign the roles by using the Azure classic portal.

  1. Nel portale di Azure andare al tenant e quindi selezionare Applicazioni.In the Azure portal, go to your tenant, and then select Applications.
  2. Selezionare l'applicazione Web, che avrà un nome simile a myTestCluster_Cluster.Select the web application, which has a name like myTestCluster_Cluster.
  3. Fare clic sulla scheda Utenti .Click the Users tab.
  4. Selezionare un utente per l'assegnazione e quindi fare clic sul pulsante Assegna nella parte inferiore della schermata.Select a user to assign, and then click the Assign button at the bottom of the screen.

    Pulsante di assegnazione di utenti ai ruoli

  5. Selezionare il ruolo da assegnare all'utente.Select the role to assign to the user.

    Finestra di dialogo "Assegna utenti"

Nota

Per altre informazioni sui ruoli in Service Fabric, vedere Controllo degli accessi in base al ruolo per i client di Service Fabric.For more information about roles in Service Fabric, see Role-based access control for Service Fabric clients.

Creare cluster protetti in LinuxCreate secure clusters on Linux

Per facilitare il processo, è disponibile uno script helper.To make the process easier, we have provided a helper script. Prima di usare questo script helper, assicurarsi che sia già installata un'interfaccia della riga di comando di Azure e che sia nel percorso in uso.Before you use this helper script, ensure that you already have Azure command-line interface (CLI) installed, and it is in your path. Verificare che lo script abbia le autorizzazioni necessarie per l'esecuzione eseguendo chmod +x cert_helper.py al termine del download.Make sure that the script has permissions to execute by running chmod +x cert_helper.py after downloading it. Il primo passaggio consiste nell'accedere al proprio account Azure usando il comando azure login nell'interfaccia della riga di comando.The first step is to sign in to your Azure account by using CLI with the azure login command. Dopo aver eseguito l'accesso all'account Azure, usare lo script helper con il certificato firmato di una CA, come illustrato dai comandi seguenti:After signing in to your Azure account, use the helper script with your CA signed certificate, as the following command shows:

./cert_helper.py [-h] CERT_TYPE [-ifile INPUT_CERT_FILE] [-sub SUBSCRIPTION_ID] [-rgname RESOURCE_GROUP_NAME] [-kv KEY_VAULT_NAME] [-sname CERTIFICATE_NAME] [-l LOCATION] [-p PASSWORD]

Il parametro -ifile può accettare un file PFX o un file PEM come input, con il tipo di certificato (pfx o pem oppure ss se è un certificato autofirmato).The -ifile parameter can take a .pfx file or a .pem file as input, with the certificate type (pfx or pem, or ss if it is a self-signed certificate). Il parametro -h visualizza il testo della guida.The parameter -h prints out the help text.

Questo comando restituisce come output le tre stringhe seguenti:This command returns the following three strings as the output:

  • SourceVaultID, che è l'ID del nuovo gruppo di risorse dell'insieme di credenziali delle chiavi creato.SourceVaultID, which is the ID for the new KeyVault ResourceGroup it created for you
  • CertificateUrl per l'accesso al certificato.CertificateUrl for accessing the certificate
  • CertificateThumbprint, usata per l'autenticazione.CertificateThumbprint, which is used for authentication

L'esempio seguente illustra come usare il comando:The following example shows how to use the command:

./cert_helper.py pfx -sub "fffffff-ffff-ffff-ffff-ffffffffffff"  -rgname "mykvrg" -kv "mykevname" -ifile "/home/test/cert.pfx" -sname "mycert" -l "East US" -p "pfxtest"

Eseguendo il comando precedente si ottengono le tre stringhe come segue:Executing the preceding command gives you the three strings as follows:

SourceVault: /subscriptions/fffffff-ffff-ffff-ffff-ffffffffffff/resourceGroups/mykvrg/providers/Microsoft.KeyVault/vaults/mykvname
CertificateUrl: https://myvault.vault.azure.net/secrets/mycert/00000000000000000000000000000000
CertificateThumbprint: 0xfffffffffffffffffffffffffffffffffffffffff

Il nome del soggetto del certificato deve corrispondere al dominio usato per accedere al cluster di Service Fabric.The certificate's subject name must match the domain that you use to access the Service Fabric cluster. Questa corrispondenza è necessaria per fornire un certificato SSL per gli endpoint di gestione HTTPS del cluster e Service Fabric Explorer.This match is required to provide an SSL for the cluster's HTTPS management endpoints and Service Fabric Explorer. Non è possibile ottenere un certificato SSL da una CA per il dominio .cloudapp.azure.com.You cannot obtain an SSL certificate from a CA for the .cloudapp.azure.com domain. È necessario ottenere un nome di dominio personalizzato per il cluster.You must obtain a custom domain name for your cluster. Quando si richiede un certificato da una CA, il nome del soggetto del certificato deve corrispondere al nome di dominio personalizzato usato per il cluster.When you request a certificate from a CA, the certificate's subject name must match the custom domain name that you use for your cluster.

Questi nomi di soggetto sono le voci necessarie per creare un cluster di Service Fabric sicuro (senza Azure AD), come descritto in Configurare i parametri del modello di Resource Manager.These subject names are the entries you need to create a secure Service Fabric cluster (without Azure AD), as described at Configure Resource Manager template parameters. È possibile connettersi al cluster sicuro seguendo le istruzioni per autenticare l'accesso client a un cluster.You can connect to the secure cluster by following the instructions for authenticating client access to a cluster. I cluster Linux non supportano l'autenticazione di Azure AD.Linux clusters do not support Azure AD authentication. È possibile assegnare ruoli amministratore e client come descritto nella sezione Assegnare utenti ai ruoli.You can assign admin and client roles as described in the Assign roles to users section. Quando si specificano ruoli amministrativi e client per un cluster Linux, è necessario fornire le identificazioni personali del certificato per l'autenticazione.When you specify admin and client roles for a Linux cluster, you have to provide certificate thumbprints for authentication. Non si specifica il nome del soggetto perché non vengono eseguite convalide o revoche della catena.You do not provide the subject name, because no chain validation or revocation is being performed.

Per usare un certificato autofirmato per il test, è possibile usare lo stesso script per generarne uno.If you want to use a self-signed certificate for testing, you can use the same script to generate one. È quindi possibile caricare il certificato nell'insieme di credenziali delle chiavi specificando il flag ss invece del percorso e del nome del certificato.You can then upload the certificate to your key vault by providing the flag ss instead of providing the certificate path and certificate name. Per la creazione e il caricamento di un certificato autofirmato, vedere ad esempio il comando seguente:For example, see the following command for creating and uploading a self-signed certificate:

./cert_helper.py ss -rgname "mykvrg" -sub "fffffff-ffff-ffff-ffff-ffffffffffff" -kv "mykevname"   -sname "mycert" -l "East US" -p "selftest" -subj "mytest.eastus.cloudapp.net"

Questo comando restituisce le stesse tre stringhe: SourceVault, CertificateUrl e CertificateThumbprint.This command returns the same three strings: SourceVault, CertificateUrl, and CertificateThumbprint. È quindi possibile usare le stringhe per creare sia un cluster Linux sicuro che una posizione in cui inserire il certificato autofirmato.You can then use the strings to create both a secure Linux cluster and a location where the self-signed certificate is placed. Per connettersi al cluster, è necessario il certificato autofirmato.You need the self-signed certificate to connect to the cluster. È possibile connettersi al cluster sicuro seguendo le istruzioni per autenticare l'accesso client a un cluster.You can connect to the secure cluster by following the instructions for authenticating client access to a cluster.

Il nome del soggetto del certificato deve corrispondere al dominio usato per accedere al cluster di Service Fabric.The certificate's subject name must match the domain that you use to access the Service Fabric cluster. Questa corrispondenza è necessaria per fornire un certificato SSL per gli endpoint di gestione HTTPS del cluster e Service Fabric Explorer.This match is required to provide an SSL for the cluster's HTTPS management endpoints and Service Fabric Explorer. Non è possibile ottenere un certificato SSL da una CA per il dominio .cloudapp.azure.com.You cannot obtain an SSL certificate from a CA for the .cloudapp.azure.com domain. È necessario ottenere un nome di dominio personalizzato per il cluster.You must obtain a custom domain name for your cluster. Quando si richiede un certificato da una CA, il nome del soggetto del certificato deve corrispondere al nome di dominio personalizzato usato per il cluster.When you request a certificate from a CA, the certificate's subject name must match the custom domain name that you use for your cluster.

È possibile immettere i parametri dello script helper nel portale di Azure, come descritto nella sezione Creare un cluster nel portale di Azure.You can fill the parameters from the helper script in the Azure portal, as described in the Create a cluster in the Azure portal section.

Passaggi successiviNext steps

A questo punto, è stato creato un cluster con Azure Active Directory che fornisce l'autenticazione per la gestione.At this point, you have a secure cluster with Azure Active Directory providing management authentication. Successivamente, connettersi al cluster e scoprire come gestire i segreti delle applicazioni.Next, connect to your cluster and learn how to manage application secrets.

Risoluzione dei problemi di configurazione di Azure Active Directory per l'autenticazione clientTroubleshoot setting up Azure Active Directory for client authentication

Se si verifica un problema durante la configurazione di Azure AD per l'autenticazione client, vedere le potenziali soluzioni in questa sezione.If you run into an issue while you're setting up Azure AD for client authentication, review the potential solutions in this section.

Service Fabric Explorer richiede di selezionare un certificatoService Fabric Explorer prompts you to select a certificate

ProblemaProblem

Dopo avere eseguito l'accesso ad Azure AD in Service Fabric Explorer, il browser torna alla home page, ma un messaggio chiede di selezionare un certificato.After you sign in successfully to Azure AD in Service Fabric Explorer, the browser returns to the home page but a message prompts you to select a certificate.

Finestra di dialogo di selezione certificato in SFX

MotivoReason

All'utente non è assegnato un ruolo nell'applicazione cluster Azure AD.The user isn’t assigned a role in the Azure AD cluster application. Di conseguenza, l'autenticazione di Azure AD non riesce nel cluster di Service Fabric.Thus, Azure AD authentication fails on Service Fabric cluster. Service Fabric Explorer ritorna all'autenticazione del certificato.Service Fabric Explorer falls back to certificate authentication.

SoluzioneSolution

Seguire le istruzioni per la configurazione di Azure AD e assegnare i ruoli utente.Follow the instructions for setting up Azure AD, and assign user roles. È anche consigliabile attivare "Assegnazione utente obbligatoria per l'accesso all'app", come in SetupApplications.ps1.Also, we recommend that you turn on “User assignment required to access app,” as SetupApplications.ps1 does.

La connessione a PowerShell non riesce con un errore: "Le credenziali specificate non sono valide"Connection with PowerShell fails with an error: "The specified credentials are invalid"

ProblemaProblem

Quando si usa PowerShell per connettersi al cluster con la modalità di sicurezza "AzureActiveDirectory", eseguito l'accesso ad Azure AD, la connessione ha esito negativo con un errore: "Le credenziali specificate non sono valide".When you use PowerShell to connect to the cluster by using “AzureActiveDirectory” security mode, after you sign in successfully to Azure AD, the connection fails with an error: "The specified credentials are invalid."

SoluzioneSolution

Questa soluzione è identica a quella precedente.This solution is the same as the preceding one.

Service Fabric Explorer restituisce un errore durante l'accesso: "AADSTS50011"Service Fabric Explorer returns a failure when you sign in: "AADSTS50011"

ProblemaProblem

Quando si prova a eseguire l'accesso ad Azure AD in Service Fabric Explorer, la pagina restituisce l'errore AADSTS50011, che indica che l'<URL> dell'indirizzo di risposta non corrisponde agli indirizzi configurati per l'applicazione: <GUID>.When you try to sign in to Azure AD in Service Fabric Explorer, the page returns a failure: "AADSTS50011: The reply address <url> does not match the reply addresses configured for the application: <guid>."

Indirizzo di risposta di SFX non corrispondente

MotivoReason

L'applicazione cluster (Web) che rappresenta Service Fabric Explorer prova a eseguire l'autenticazione per Azure AD e come parte della richiesta indica l'URL di reindirizzamento restituito.The cluster (web) application that represents Service Fabric Explorer attempts to authenticate against Azure AD, and as part of the request it provides the redirect return URL. L'URL non è presente nell'elenco degli URL DI RISPOSTA dell'applicazione Azure AD.But the URL is not listed in the Azure AD application REPLY URL list.

SoluzioneSolution

Nella scheda Configura dell'applicazione cluster (Web) aggiungere l'URL di Service Fabric Explorer all'elenco URL DI RISPOSTA o sostituire una delle voci dell'elenco.On the Configure tab of the cluster (web) application, add the URL of Service Fabric Explorer to the REPLY URL list or replace one of the items in the list. Al termine, salvare la modifica.When you have finished, save your change.

URL di risposta dell'applicazione Web

Connettere il cluster usando l'autenticazione di Azure AD tramite PowerShellConnect the cluster by using Azure AD authentication via PowerShell

Per connettere il cluster di Service Fabric, usare il comando di PowerShell di esempio seguente:To connect the Service Fabric cluster, use the following PowerShell command example:

Connect-ServiceFabricCluster -ConnectionEndpoint <endpoint> -KeepAliveIntervalInSec 10 -AzureActiveDirectory -ServerCertThumbprint <thumbprint>

Per informazioni sul cmdlet Connect-ServiceFabricCluster, vedere Connect-ServiceFabricCluster.To learn about the Connect-ServiceFabricCluster cmdlet, see Connect-ServiceFabricCluster.

È possibile usare di nuovo lo stesso tenant di Azure AD in più cluster?Can I reuse the same Azure AD tenant in multiple clusters?

Sì.Yes. Ricordarsi però di aggiungere l'URL di Service Fabric Explorer all'applicazione cluster (Web).But remember to add the URL of Service Fabric Explorer to your cluster (web) application. In caso contrario, Service Fabric Explorer non funzionerà.Otherwise, Service Fabric Explorer doesn’t work.

Perché è ancora necessario un certificato del server se Azure AD è abilitato?Why do I still need a server certificate while Azure AD is enabled?

FabricClient e FabricGateway eseguono un'autenticazione reciproca.FabricClient and FabricGateway perform a mutual authentication. Durante l'autenticazione di Azure AD, l'integrazione di Azure AD consente di assegnare un'identità del client al server e il certificato del server viene usato per verificare l'identità del server.During Azure AD authentication, Azure AD integration provides a client identity to the server, and the server certificate is used to verify the server identity. Per altre informazioni sui certificati di Service Fabric, vedere Certificati X.509 e Service Fabric.For more information about Service Fabric certificates, see X.509 certificates and Service Fabric.