Proteggere i servizi back-end usando l'autenticazione del certificato client in Azure Gestione API

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 azure Gestione API usando il portale di Azure. Viene inoltre illustrato come configurare un'API per l'uso di un certificato per accedere a un servizio back-end.

È anche possibile gestire i certificati Gestione API usando l'API REST 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 Azure, vedere 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 in formato PFX . Sono consentiti i certificati autofirmati.

    Se si usa un certificato autofirmato:

Prerequisiti per l'integrazione dell'insieme di credenziali delle chiavi

  1. 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.

  2. 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

  1. Nel portale passare all'insieme di credenziali delle chiavi.

  2. Nel menu a sinistra, selezionare Configurazione di accesso e prendere nota del modello di autorizzazione configurato.

  3. 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:

    1. Selezionare Criteri di accesso nel menu a sinistra.
    2. Nella pagina Criteri di accesso selezionare + Crea.
    3. Nella scheda Autorizzazioni, in Autorizzazioni segrete selezionare Ottieni e Elenco, quindi selezionare Avanti.
    4. Nella scheda Entità, Seleziona entità , cercare il nome della risorsa dell'identità gestita e quindi selezionareAvanti. Se si usa un'identità assegnata dal sistema, l'entità è il nome dell'istanza di Gestione API.
    5. 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:

    1. Nel menu a sinistra selezionare Controllo di accesso (IAM).
    2. Nella pagina Controllo di accesso (IAM), selezionare Aggiungi assegnazione di ruolo.
    3. Nella scheda Ruolo selezionare Utente dei segreti dell'insieme di credenziali delle chiavi.
    4. Nella scheda Membri selezionare Identità gestita>+ Seleziona membri.
    5. 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.
    6. 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 Key Vault.

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:

  1. Nel portale di Azure accedere all'istanza di Gestione API.

  2. In Sicurezza selezionare Certificati.

  3. Selezionare Certificati>+ Aggiungi.

  4. In ID immettere il nome desiderato.

  5. In Certificato selezionare Insieme di credenziali delle chiavi.

  6. 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.

  7. In Identità client selezionare un'identità gestita assegnata dal sistema o 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.

  8. Selezionare Aggiungi.

    Screenshot dell'aggiunta di un certificato dell'insieme di credenziali delle chiavi a Gestione API nel portale.

  9. Seleziona Salva.

Caricamento di un certificato

Per caricare un certificato client in Gestione API:

  1. Nel portale di Azure accedere all'istanza di Gestione API.

  2. In Sicurezza selezionare Certificati.

  3. Selezionare Certificati>+ Aggiungi.

  4. In ID immettere il nome desiderato.

  5. In Certificato, selezionare Personalizzato.

  6. Sfogliare per selezionare file con estensione pfx del certificato e immettere la password.

  7. Selezionare Aggiungi.

    Screenshot del caricamento di un certificato client in Gestione API nel portale.

  8. Seleziona Salva.

Dopo il caricamento del certificato, viene visualizzato nella finestra Certificati . Se si dispone di molti certificati, prendere nota dell'identificazione personale 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 del certificato client per l'autenticazione del gateway

  1. Nel portale di Azure accedere all'istanza di Gestione API.

  2. In API selezionare API.

  3. Selezionare un'API dall'elenco.

  4. Nella scheda Progettazione selezionare l'icona dell'editor nella sezione Back-end.

  5. In Credenziali gateway selezionare Certificato client e selezionare il certificato dall'elenco a discesa.

  6. Seleziona Salva.

    Usare il certificato client per l'autenticazione del gateway

Attenzione

Questa modifica è effettiva immediatamente e le chiamate alle operazioni di tale API useranno il certificato per l'autenticazione nel server back-end.

Suggerimento

Quando viene specificato un certificato per l'autenticazione gateway per il servizio back-end di un'API, diventa parte dei criteri per tale API e può essere visualizzato nell'editor dei criteri.

Disabilitare la convalida della catena di certificati per i certificati autofirmato

Se si usano certificati autofirmati, sarà necessario disabilitare la convalida della catena di certificati per Gestione API per comunicare con il sistema back-end. In caso contrario, verrà restituito un codice di Errore 500. Per configurare questa operazione, è possibile usare i New-AzApiManagementBackend cmdlet di PowerShell (per il nuovo back-end) o Set-AzApiManagementBackend (per il back-end esistente) e impostare il -SkipCertificateChainValidation parametro 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 (...).

Eliminare un certificato

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 usarlo.

Passaggi successivi