Proteggere i servizi back-end usando l'autenticazione del certificato client in Gestione API di Azure
SI APPLICA A: Tutti i livelli di Gestione API
Gestione API consente di proteggere l'accesso al servizio back-end di un'API usando i certificati client e l'autenticazione TLS reciproca. Questa guida illustra come gestire i certificati in un’istanza del servizio Gestione API di Azure usando il portale di Azure. Viene inoltre spiegato come configurare un'API per usare un certificato per accedere a un servizio back-end.
È anche possibile gestire i certificati di Gestione API usando l'API REST di Gestione API.
Opzioni di certificati
Gestione API offre due opzioni per gestire i certificati usati per proteggere l'accesso ai servizi back-end:
- Fare riferimento a un certificato gestito in Azure Key Vault
- Aggiungere un file del certificato direttamente in Gestione API
È consigliabile usare i certificati dell'insieme di credenziali delle chiavi perché consentono di migliorare la sicurezza di Gestione API:
- I certificati archiviati negli insiemi di credenziali delle chiavi possono essere riutilizzati nei servizi
- È possibile applicare criteri di accesso granulari ai certificati archiviati negli insiemi di credenziali delle chiavi
- I certificati aggiornati nell'insieme di credenziali delle chiavi vengono ruotati automaticamente in Gestione API. Dopo l'aggiornamento nell'insieme di credenziali delle chiavi, un certificato in Gestione API viene aggiornato entro 4 ore. È anche possibile aggiornare manualmente il certificato usando il portale di Azure o tramite l'API REST di gestione.
Prerequisiti
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Se non è ancora stata creata un'istanza del servizio Gestione API, vedere Creare un'istanza del servizio Gestione API.
È necessario che il servizio back-end sia configurato per l'autenticazione del certificato client. Per configurare l'autenticazione del certificato nel Servizio app di Azure, consultare questo articolo.
È necessario accedere al certificato e alla password per la gestione in un insieme di credenziali delle chiavi di Azure o caricare il certificato nel servizio Gestione API. Il certificato deve essere nel formato PFX. Sono consentiti i certificati autofirmati.
Se si usa un certificato autofirmato:
Installare certificati CA intermedi e radice attendibili nell'istanza di Gestione API.
Nota
I certificati CA per la convalida dei certificati non sono supportati nel livello a Consumo.
Prerequisiti per l'integrazione dell'insieme di credenziali delle chiavi
Nota
Attualmente, questa funzionalità non è disponibile nelle aree di lavoro.
Se non si ha già un insieme di credenziali delle chiavi, crearne uno. Per la procedura per la creazione di un insieme di credenziali delle chiavi, vedere Avvio rapido: creare un insieme di credenziali delle chiavi usando il portale di Azure.
Per creare o importare un certificato nell'insieme di credenziali delle chiavi, vedere Avvio rapido: impostare e recuperare un certificato da Azure Key Vault usando il portale di Azure.
Abilitare un'identità gestita assegnata dal sistema o assegnata dall'utente nell'istanza di Gestione API.
Configurare l'accesso all'insieme di credenziali delle chiavi
Nel portale passare all'insieme di credenziali delle chiavi.
Nel menu a sinistra, selezionare Configurazione di accesso e prendere nota del modello di autorizzazione configurato.
A seconda del modello di autorizzazione, configurare un criterio di accesso dell'insieme di credenziali delle chiavi o un accesso al controllo degli accessi in base al ruolo di Azure per un'identità gestita di Gestione API.
Per aggiungere un criterio di accesso dell'insieme di credenziali delle chiavi:
- Selezionare Criteri di accesso nel menu a sinistra.
- Nella pagina Criteri di accesso, selezionare + Crea.
- Nella scheda Autorizzazioni, in Autorizzazioni segrete, selezionare Ottieni ed Elenco, quindi selezionare Avanti.
- Nella scheda Entità di sicurezza, Seleziona entità di sicurezza , cercare il nome della risorsa dell'identità gestita e quindi selezionare Avanti. Se si usa un'identità assegnata dal sistema, l'entità è il nome dell'istanza di Gestione API.
- Selezionare di nuovo Avanti. Nella scheda Rivedi e crea selezionare Crea.
Per configurare l'accesso al controllo degli accessi in base al ruolo di Azure:
- Nel menu a sinistra selezionare Controllo di accesso (IAM).
- Nella pagina Controllo di accesso (IAM), selezionare Aggiungi assegnazione di ruolo.
- Nella scheda Ruolo, selezionare Utente dei certificati Key Vault.
- Nella scheda Membri, selezionare Identità gestita>+ Seleziona membri.
- Nella pagina Seleziona identità gestita, selezionare l'identità gestita assegnata dal sistema o un'identità gestita assegnata dall'utente associata all'istanza di Gestione API e quindi selezionare Seleziona.
- Seleziona Rivedi + assegna.
Requisiti per il firewall di Key Vault
Se il firewall di Key Vault è abilitato nell'insieme di credenziali delle chiavi, sono necessari requisiti aggiuntivi:
Per accedere all'insieme di credenziali delle chiavi, è necessario usare l'identità gestita assegnata dal sistema dell'istanza di Gestione API.
Nel firewall di Key Vault, abilitare l'opzione Consenti ai servizi Microsoft attendibili di ignorare questo firewall.
Assicurarsi che l'indirizzo IP del client locale sia autorizzato ad accedere temporaneamente all'insieme di credenziali delle chiavi mentre si seleziona un certificato o un segreto da aggiungere a Gestione API di Azure. Per altre informazioni, vedere Configurare le impostazioni di rete di Azure Key Vault.
Dopo aver completato la configurazione, è possibile bloccare l'indirizzo client nel firewall di insieme di credenziali delle chiavi.
Requisiti della rete virtuale
Se l'istanza di Gestione API viene distribuita in una rete virtuale, configurare anche le impostazioni di rete seguenti:
- Abilitare un endpoint di servizio in Azure Key Vault nella subnet di Gestione API.
- Configurare una regola del gruppo di sicurezza di rete (NSG) per consentire il traffico in uscita ai tag del servizio AzureKeyVault e AzureActiveDirectory.
Per informazioni dettagliate, vedere Configurazione di rete durante la configurazione di Gestione API di Azure in una rete virtuale.
Aggiungere un certificato dell'insieme di credenziali delle chiavi
Vedere Prerequisiti per l'integrazione dell'insieme di credenziali delle chiavi.
Importante
Quando si aggiunge un certificato dell'insieme di credenziali delle chiavi all'istanza di Gestione API, è necessario disporre delle autorizzazioni per elencare i segreti dell'insieme di credenziali delle chiavi.
Attenzione
Quando si usa un certificato dell'insieme di credenziali delle chiavi in Gestione API, prestare attenzione a non eliminare il certificato, l'insieme di credenziali delle chiavi o l'identità gestita usata per accedere all'insieme di credenziali delle chiavi.
Per aggiungere un certificato dell'insieme di credenziali delle chiavi a Gestione API:
Nel portale di Azure accedere all'istanza di Gestione API.
In Sicurezza, selezionare Certificati.
Selezionare Certificati>+ Aggiungi.
In ID, immettere il nome desiderato.
In Certificato, selezionare insieme di credenziali delle chiavi.
Immettere l'identificatore di un certificato dell'insieme di credenziali delle chiavi oppure scegliere Seleziona per selezionare un certificato da un insieme di credenziali delle chiavi.
Importante
Se si immette manualmente un identificatore del certificato dell'insieme di credenziali delle chiavi, assicurarsi che non disponga di informazioni sulla versione. In caso contrario, il certificato non verrà ruotato automaticamente in Gestione API dopo un aggiornamento nell'insieme di credenziali delle chiavi.
In Identità client, selezionare un'identità gestita assegnata dal sistema o assegnata da un utente esistente. Di seguito viene descritto come aggiungere o modificare le identità gestite nel servizio Gestione API.
Nota
L'identità deve disporre delle autorizzazioni per ottenere ed elencare il certificato dell'insieme di credenziali delle chiavi. Se non è già stato configurato l'accesso all'insieme di credenziali delle chiavi, Gestione API richiede di configurare automaticamente l'identità con le autorizzazioni necessarie.
Selezionare Aggiungi.
Seleziona Salva.
Caricamento di un certificato
Per caricare un certificato client in Gestione API:
Nel portale di Azure accedere all'istanza di Gestione API.
In Sicurezza, selezionare Certificati.
Selezionare Certificati>+ Aggiungi.
In ID, immettere il nome desiderato.
In Certificato, selezionare Personalizzato.
Sfogliare per selezionare file con estensione .pfx del certificato e immettere la password.
Selezionare Aggiungi.
Seleziona Salva.
Dopo il caricamento del certificato, viene visualizzato nella finestra Certificati. Se sono disponibili molti certificati, prendere nota dell'identificazione digitale del certificato desiderato per configurare un'API per l'uso di un certificato client per l'autenticazione del gateway.
Configurare un'API per l'uso di un certificato client per l'autenticazione gateway
Nel portale di Azure accedere all'istanza di Gestione API.
In API, selezionare API.
Selezionare un'API dall'elenco.
Nella scheda Progettazione, selezionare l'icona dell'editor nella sezione Back-end.
In Credenziali gatewayselezionare Certificato client e selezionare il certificato dall'elenco a discesa.
Seleziona Salva.
Attenzione
Questa modifica ha effetto immediato e le chiamate alle operazioni di quell'API useranno il certificato per autenticarsi sul server back-end.
Suggerimento
Quando un certificato è specificato per l'autenticazione gateway del servizio back-end di un'API, diventa parte dei criteri di quell'API e può essere visualizzato nell'editor dei criteri.
Disabilitare la convalida della catena di certificati per i certificati autofirmati
Se si usano i certificati autofirmati, è necessario disabilitare la convalida della catena di certificati affinché il servizio Gestione API possa comunicare con il sistema back-end. In caso contrario, verrà restituito un codice di Errore 500. Per configurare questa operazione, è possibile usare i cmdlet di PowerShell New-AzApiManagementBackend
(per il nuovo back-end) o Set-AzApiManagementBackend
(per il back-end esistente) e impostare il parametro -SkipCertificateChainValidation
su True
.
$context = New-AzApiManagementContext -resourcegroup 'ContosoResourceGroup' -servicename 'ContosoAPIMService'
New-AzApiManagementBackend -Context $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true
È anche possibile disabilitare la convalida della catena di certificati usando l'API REST Back-end.
Eliminare un certificato client
Per eliminare un certificato, selezionarlo e quindi selezionare Elimina dal menu di scelta rapida (...).
Importante
Se viene fatto riferimento al certificato da qualsiasi criterio, viene visualizzata una schermata di avviso. Per eliminare il certificato, è prima necessario rimuovere il certificato da tutti i criteri configurati per l’uso.