Abilitare la comunicazione HTTPS in Azure Servizi cloud (supporto esteso)
Articolo
La comunicazione con Servizi cloud di Microsoft Azure (supporto esteso) viene eseguita usando il protocollo HTTPS (Hypertext Transfer Protocol Secure). Questo articolo illustra come abilitare la comunicazione HTTPS per Servizi cloud (supporto esteso).
Passaggi generali per la distribuzione del progetto
I passaggi generali per distribuire un progetto Servizi cloud (supporto esteso) in Azure sono i seguenti:
Preparare il certificato.
Configurare il progetto.
Creare il pacchetto del file di progetto nei file di definizione del servizio (con estensione csdef), configurazione del servizio (con estensione cscfg) e pacchetto del servizio (con estensione cspkg) del servizio cloud.
Modificare la configurazione della risorsa Servizi cloud (supporto esteso), se necessario. Ad esempio, è possibile apportare una delle modifiche seguenti:
Aggiornare l'URL del pacchetto.
Configurare l'impostazione DELL'URL.
Aggiornare l'impostazione dei segreti del sistema operativo.
Distribuire e aggiornare il nuovo progetto in Azure.
Nota
Il progetto può essere distribuito tramite diversi metodi, ad esempio usando gli strumenti seguenti:
Uno strumento di integrazione continua e recapito continuo (CI/CD), ad esempio Azure DevOps
Indipendentemente dal metodo di distribuzione, i passaggi di distribuzione generali sono gli stessi.
I primi due passaggi sono necessari per tutti i metodi di distribuzione. Questi passaggi sono illustrati nella sezione Modifiche al codice . Anche i passaggi rimanenti sono importanti, ma non richiedono sempre l'intervento manuale dell'utente. Ad esempio, i passaggi potrebbero essere eseguiti automaticamente da uno strumento come Visual Studio. Gli ultimi tre passaggi sono illustrati nella sezione Modifiche alla configurazione .
Modifiche al codice
Per apportare le modifiche al codice per preparare il certificato e configurare il progetto, seguire questa procedura:
Annotare l'identificazione personale del certificato (stringa esadecimale a 40 cifre).
Nel file di configurazione del servizio (con estensione cscfg) del progetto aggiungere l'identificazione personale del certificato al ruolo in cui si vuole usare il certificato. Ad esempio, se si vuole usare il certificato come certificato SSL per comunicare con un WebRole, è possibile aggiungere codice XML simile al frammento di codice seguente per WebRole1 come primo elemento figlio dell'elemento radice ServiceConfiguration :
È possibile personalizzare il nome del certificato, ma deve corrispondere al nome del certificato usato nel file di definizione del servizio (con estensione csdef).
L'elemento Certificates deve essere aggiunto direttamente dopo il tag di chiusura Endpoints . Non contiene attributi. Contiene solo elementi figlio Certificate .
Ad esempio, il file di definizione del servizio potrebbe essere simile al codice XML seguente:
In questo esempio, il file di definizione del servizio viene modificato per associare un endpoint di input di HttpsIn per il protocollo HTTPS sulla porta 443. Usa il Certificate1 certificato per un archivio con un nome e una posizione di solo per un livello di MyLocalMachine autorizzazione limitato o elevato. I nomi dei InputEndpoint certificati negli elementi e Certificate corrispondono tra loro. Corrispondono anche al nome del certificato usato nel file di configurazione del servizio (con estensione cscfg) del passaggio precedente.
Modifiche alla configurazione
Le istruzioni per la modifica della configurazione del servizio cloud sono diverse a seconda della modalità di distribuzione del servizio cloud. Queste istruzioni sono visualizzate nelle schede seguenti. Ogni scheda rappresenta un metodo di distribuzione diverso.
Caricare i file del pacchetto del servizio generato (<project-name.cspkg>) e della configurazione del servizio cloud (ServiceConfiguration.Cloud.cscfg) in un contenitore di account di archiviazione per il servizio cloud.
Nota
Sarà anche necessario caricare il file di definizione del servizio (ServiceDefinition.csdef) usando lo stesso processo descritto per gli altri due file.
Generare un URL di firma di accesso condiviso (SAS) per ogni file caricato.
Nella portale di Azure tornare alla pagina Panoramica del servizio cloud e quindi selezionare Aggiorna.
Nella pagina Aggiorna servizio cloud apportare le modifiche seguenti nella scheda Nozioni di base :
Nel campo Percorso pacchetto/configurazione/definizione del servizio selezionare Da BLOB.
Nel campo Carica un pacchetto (.cspkg, .zip) seguire questa procedura:
Selezionare il collegamento Sfoglia .
Selezionare l'account di archiviazione e il contenitore in cui sono stati caricati i file.
Nella pagina del contenitore selezionare il file corrispondente (in questo caso project-name.cspkg<>) e quindi selezionare il pulsante Seleziona.
Per il campo Carica una configurazione (con estensione cscfg) e il file ServiceConfiguration.Cloud.cscfg , ripetere la sottoprocedura descritta nel passaggio precedente.
Per il campo Carica una definizione del servizio (con estensione csdef) e il file ServiceDefinition.csdef , ripetere di nuovo la sottoprocedura.
Selezionare la scheda Configurazione .
Nel campo Insieme di credenziali delle chiavi selezionare l'insieme di credenziali delle chiavi in cui è stato caricato il certificato (in precedenza nella sezione Modifiche al codice ). Dopo aver trovato il certificato nell'insieme di credenziali delle chiavi selezionato, il certificato elencato visualizza lo statoTrovato.
Per distribuire il progetto appena configurato, selezionare il pulsante Aggiorna .
Caricare il file del pacchetto del servizio generato (<project-name.cspkg>) in un contenitore di account di archiviazione per il servizio cloud.
Nota
Nonostante quanto indicato nelle istruzioni, non è necessario caricare il file di configurazione del servizio cloud (ServiceConfiguration.Cloud.cscfg). Solo il file del pacchetto del servizio deve essere caricato qui.
Generare un URL di firma di accesso condiviso (SAS) per il file del pacchetto del servizio caricato.
Nello script di PowerShell seguente sostituire i segnaposto all'inizio dello script con i valori effettivi per ogni variabile e quindi eseguire lo script per aggiornare il servizio cloud:
Caricare i file del pacchetto del servizio generato (<project-name.cspkg>) e della configurazione del servizio cloud (ServiceConfiguration.Cloud.cscfg) in un contenitore di account di archiviazione per il servizio cloud.
Generare un URL di firma di accesso condiviso (SAS) per ogni file caricato.
Ottenere i valori seguenti dalla pagina del certificato dell'insieme di credenziali delle chiavi nel portale di Azure:
URL del certificato dell'insieme di credenziali delle chiavi
ID sottoscrizione
Nome del gruppo di risorse in cui viene distribuito l'insieme di credenziali delle chiavi
Nome del servizio per l'insieme di credenziali delle chiavi
Nel modello arm originale per il servizio cloud individuare la osProfile proprietà . Se il progetto di servizio cloud originale supporta solo la comunicazione HTTP, la osProfile proprietà è vuota ("osProfile": {}). Per consentire al servizio cloud di recuperare il certificato corretto dall'insieme di credenziali delle chiavi corretto, specificare l'insieme di credenziali delle chiavi da usare all'interno del modello di Resource Manager. È possibile usare un parametro per rappresentare questo valore. In alternativa, è possibile hardcodecode il valore nel modello di Arm, come illustrato nell'esempio seguente:
Nel testo JSON del modello ARM, il id valore nel sourceVault parametro fa parte dell'URL della pagina Key Vault nel portale di Azure. Il certificateUrl valore è l'URL del certificato dell'insieme di credenziali delle chiavi trovato in precedenza. I formati di testo per questi valori sono illustrati nella tabella seguente.
Distribuire il modello ARM aggiornato contenente nuovi parametri, ad esempio il token di firma di accesso condiviso del pacchetto, il token di firma di accesso condiviso di configurazione e altro ancora. Per informazioni su come dichiarare e specificare questi parametri, è possibile esaminare un file di modello arm di esempio e un file di parametri di modello arm di esempio. Attendere quindi il completamento della distribuzione.
Nota
Se viene visualizzato un messaggio di errore che indica che viene usato l'indirizzo IP pubblico, rimuovere l'indirizzo IP pubblico dal file di configurazione del servizio (con estensione cscfg) e dal file dei parametri del modello arm. Non rimuovere la dichiarazione dell'indirizzo IP pubblico dal file del modello di Arm stesso.
Questa sezione contiene codice riscritto dal codice di esempio dell'SDK ufficiale disponibile nella tabella codici di esempio di GitHub per Azure Servizi cloud (supporto esteso).This section contains code that's rewritten from the official SDK example code that's rewritten from the official SDK example code page that's rewritten from the official SDK example code page for Azure Servizi cloud (extended support).
Questa sezione descrive come usare Azure SDK e C# per apportare le modifiche di configurazione corrette. Per usare correttamente l'SDK per distribuire il progetto di servizio cloud e modificare la configurazione correlata, è necessario registrare un'applicazione in Microsoft Entra ID. Per eseguire la registrazione, vedere l'articolo Usare il portale per creare un'applicazione Microsoft Entra e un'entità servizio in grado di accedere alle risorse. La tabella seguente descrive i passaggi specifici da eseguire e la sottosezione corrispondente da leggere in tale articolo.
Passaggio
Collegamento alla sottosezione
Assegnare alla sottoscrizione il ruolo di proprietario per l'applicazione
Configurare i criteri di accesso per l'insieme di credenziali delle chiavi e concedere l'autorizzazione all'applicazione (di almeno livello di lettura) per accedere al certificato
Caricare il file del pacchetto del servizio generato (<project-name.cspkg>) in un contenitore di account di archiviazione per il servizio cloud.
Nota
Nonostante quanto indicato nelle istruzioni, non è necessario caricare il file di configurazione del servizio cloud (ServiceConfiguration.Cloud.cscfg). Solo il file del pacchetto del servizio deve essere caricato qui.
Generare un URL di firma di accesso condiviso (SAS) per il file del pacchetto del servizio caricato.
Ottenere i valori seguenti dalla pagina del certificato dell'insieme di credenziali delle chiavi nel portale di Azure:
URL del certificato dell'insieme di credenziali delle chiavi
ID sottoscrizione
Nome del gruppo di risorse in cui viene distribuito l'insieme di credenziali delle chiavi
Nome del servizio per l'insieme di credenziali delle chiavi
Scaricare il progetto di esempio (un file di archivio compresso) ed estrarne il contenuto.
Aprire il file SDKSample\CreateCloudService\CreateCloudService\LoginHelper.cs in un editor di testo. InitializeServiceClient Nel metodo sovrascrivere i valori delle tenantIdvariabili stringa , clientIde clientCredentials con i valori rispettivamente per l'ID tenant, l'ID applicazione e il segreto dell'applicazione. Questi valori sono quelli copiati durante la registrazione dell'applicazione.
Aprire il file SDKSample\CreateCloudService\CreateCloudService\Program.cs in un editor di testo. Main Nel metodo sovrascrivere alcuni dei valori inizializzati delle variabili dichiarate all'inizio del metodo. Nella tabella seguente vengono illustrati i nomi delle variabili e i valori che è necessario usare per tali nomi.
Nome variabile
New value (nuovo valore)
m_subId
ID della sottoscrizione che contiene il servizio cloud
csrgName
Nome del gruppo di risorse che contiene il servizio cloud
csName
Nome della risorsa del servizio cloud
kvrgName
Nome del gruppo di risorse che contiene la risorsa dell'insieme di credenziali delle chiavi
kvName
Nome della risorsa dell'insieme di credenziali delle chiavi
kvsubid
ID della sottoscrizione che contiene l'insieme di credenziali delle chiavi (potrebbe essere diverso dall'ID sottoscrizione del servizio cloud)
secretidentifier
URL del certificato dell'insieme di credenziali delle chiavi
filename
Percorso locale del file di configurazione del servizio (ServiceConfiguration.Cloud.cscfg)
packageurl
URL di firma di accesso condiviso per il file del pacchetto del servizio (<project-name.cspkg>)
Nel riquadro Esplora soluzioni di Visual Studio fare clic con il pulsante destro del mouse sul nodo del progetto e quindi scegliere Gestisci pacchetti NuGet. Nella scheda Sfoglia cercare, selezionare e installare i pacchetti seguenti:
Microsoft.Azure.Management.ResourceManager
Microsoft.Azure.Management.Compute
Microsoft.Azure.Management.Storage
Azure.Identity
Microsoft.Rest.ClientRuntime.Azure.Authentication
Eseguire il progetto e quindi attendere la visualizzazione dei messaggi nel riquadro Output . Se nel riquadro viene visualizzato "exit with code 0", l'aggiornamento e la distribuzione dovrebbero funzionare correttamente. Se viene visualizzato "exit with code 1", potrebbe essere necessario verificare la presenza di messaggi di errore per esaminare eventuali problemi.
In Visual Studio è necessario apportare due modifiche alla configurazione. Configurare la configurazione del servizio in modo che il contesto locale sia allineato al contesto cloud e quindi specificare dove si trova l'insieme di credenziali delle chiavi.
Per la configurazione del servizio, copiare il contenuto del contesto cloud (il file ServiceConfiguration.Cloud.cscfg ) e incollarli nel contesto locale (il file ServiceConfiguration.Local.cscfg ). Si dispone di una configurazione diversa o è comunque necessario il file di configurazione locale per altri usi? Se una delle due condizioni è true, mantenere gli certificate elementi del contesto locale esistente.
Nel riquadro Esplora soluzioni di Visual Studio fare clic con il pulsante destro del mouse sul nodo del progetto e quindi scegliere Pubblica. Procedere con la procedura guidata Pubblica applicazione Azure fino a raggiungere la scheda Impostazioni. In tale scheda impostare il campo Insieme di credenziali delle chiavi sulla posizione in cui viene salvato l'insieme di credenziali delle chiavi. Infine, selezionare il pulsante Pubblica e quindi attendere il completamento della distribuzione.
Dopo aver apportato le modifiche alla configurazione, i clienti potranno comunicare con il sito Web dei servizi cloud usando il protocollo HTTPS. Se il certificato è autofirmato, il browser potrebbe segnalare un avviso che indica che il certificato non è sicuro, ma il browser non blocca la connessione.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedere https://aka.ms/ContentUserFeedback.