Come proteggere i servizi back-end usando l'autenticazione con certificati client in Gestione API di AzureHow to secure back-end services using client certificate authentication in Azure API Management

Gestione API consente di proteggere l'accesso al servizio back-end di un'API usando i certificati client.API Management allows to secure access to the back-end service of an API using client certificates. Questa guida illustra come gestire i certificati nell'istanza del servizio Gestione API di Azure nel portale di Azure.This guide shows how to manage certificates in the Azure API Management service instance in the Azure portal. Viene inoltre spiegato come configurare un'API per usare un certificato per accedere a un servizio back-end.It also explains how to configure an API to use a certificate to access a back-end service.

Per informazioni sulla gestione dei certificati con l'API REST di Gestione API, vedere Entità certificato dell'API REST di Gestione API di Azure.For information about managing certificates using the API Management REST API, see Azure API Management REST API Certificate entity.

Prerequisiti Prerequisites

In questa guida viene illustrato come configurare un'istanza del servizio di Gestione API per l'uso dell'autenticazione con certificati client per accedere al servizio back-end di un'API.This guide shows you how to configure your API Management service instance to use client certificate authentication to access the back-end service for an API. Prima di seguire la procedura descritta in questo articolo, è necessario che il servizio back-end sia configurato per l'autenticazione del certificato client (per configurare l'autenticazione del certificato in siti Web di Azure fare riferimento a questo articolo).Before following the steps in this article, you should have your back-end service configured for client certificate authentication (to configure certificate authentication in Azure WebSites refer to this article). È necessario accedere al certificato e alla password per caricarlo nel servizio Gestione API.You need access to the certificate and the password for uploading it to the API Management service.

Caricare un certificato client Upload a client certificate

Aggiungere certificati client

Seguire questa procedura per caricare un nuovo certificato client.Follow the steps below to upload a new client certificate. Se non è ancora stata creata un'istanza del servizio Gestione API, vedere l'esercitazione Creare un'istanza di Gestione API.If you have not created an API Management service instance yet, see the tutorial Create an API Management service instance.

  1. Passare all'istanza del servizio Gestione API di Azure nel portale di Azure.Navigate to your Azure API Management service instance in the Azure portal.
  2. Scegliere Certificati client dal menu.Select Client certificates from the menu.
  3. Fare clic sul pulsante + Aggiungi.Click the + Add button.
    Aggiungere certificati clientAdd client certificates
  4. Selezionare il certificato, quindi specificarne ID e password.Browse for the certificate, provide its ID and password.
  5. Fare clic su Crea.Click Create.

Nota

Il certificato deve essere nel formato .pfx .The certificate must be in .pfx format. Sono consentiti i certificati autofirmati.Self-signed certificates are allowed.

Dopo il caricamento, il certificato viene visualizzato nella scheda Certificati client.Once the certificate is uploaded, it shows in the Client certificates. 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.If you have many certificates, make a note of the thumbprint of the desired certificate in order to Configure an API to use a client certificate for gateway authentication.

Nota

Per disattivare la convalida della catena di certificati quando si usa, ad esempio, un certificato autofirmato, seguire i passaggi descritti in questa voce delle Domande frequenti.To turn off certificate chain validation when using, for example, a self-signed certificate, follow the steps described in this FAQ item.

Eliminare un certificato client Delete a client certificate

Per eliminare un certificato, fare clic sul menu di scelta rapida ... e selezionare Elimina accanto al certificato.To delete a certificate, click context menu ... and select Delete beside the certificate.

Eliminare certificati client

Se il certificato è in uso da parte di un'API, verrà visualizzata una schermata di avviso.If the certificate is in use by an API, then a warning screen is displayed. Per eliminare il certificato, è prima necessario rimuoverlo da tutte le API configurate per il suo uso.To delete the certificate, you must first remove the certificate from any APIs that are configured to use it.

Errore di eliminazione dei certificati client

Configurare un'API per l'uso di un certificato client per l'autenticazione gateway Configure an API to use a client certificate for gateway authentication

  1. Fare clic su API dal menu Gestione API sulla sinistra e passare all'API.Click APIs from the API Management menu on the left and navigate to the API.
    Abilitare i certificati clientEnable client certificates

  2. Nella scheda Progettazione fare clic sull'icona a forma di matita nella sezione Back-end.In the Design tab, click on a pencil icon of the Backend section.

  3. Modificare Credenziali gateway impostando Certificato client e selezionare il certificato nell'elenco a discesa.Change the Gateway credentials to Client cert and select your certificate from the dropdown.
    Abilitare i certificati clientEnable client certificates

  4. Fare clic su Save.Click Save.

Avviso

Questa modifica ha effetto immediato e le chiamate alle operazioni di quell'API useranno il certificato per autenticarsi sul server back-end.This change is effective immediately, and calls to operations of that API will use the certificate to authenticate on the back-end server.

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.When a certificate is specified for gateway authentication for the back-end service of an API, it becomes part of the policy for that API, and can be viewed in the policy editor.

Certificati autofirmatiSelf-signed certificates

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.If you are using self-signed certificates, you will need to disable certificate chain validation in order for API Management to communicate with the backend system. In caso contrario, verrà restituito un codice di Errore 500.Otherwise it will return a 500 error code. Per la configurazione, usare i cmdlet PowerShell New-AzureRmApiManagementBackend (per il nuovo back-end) o Set-AzureRmApiManagementBackend (per il back-end esistente) e impostare il parametro -SkipCertificateChainValidation su True.To configure this, you can use the New-AzureRmApiManagementBackend (for new back end) or Set-AzureRmApiManagementBackend (for existing back end) PowerShell cmdlets and set the -SkipCertificateChainValidation parameter to True.

$context = New-AzureRmApiManagementContext -resourcegroup 'ContosoResourceGroup' -servicename 'ContosoAPIMService'
New-AzureRmApiManagementBackend -Context  $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true