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 offre la possibilità di proteggere l'accesso al servizio back-end di un'API usando i certificati client.API Management provides the capability to secure access to the back-end service of an API using client certificates. Questa guida illustra come gestire i certificati nel portale di pubblicazione delle API e come configurare un'API per l'uso di un certificato per accedere al servizio back-end.This guide shows how to manage certificates in the API publisher portal, and how to configure an API to use a certificate to access its back-end service.

Per informazioni sulla gestione dei certificati con l'API REST di Gestione API, vedere Azure API Management REST API Certificate entity (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 i passaggi indicati in questo argomento è necessario aver configurato il servizio back-end per l'autenticazione del certificato client (per la configurazione dell'autenticazione del certificato client nei siti Web di Azure, vedere questo articolo ) e avere l'accesso al certificato e alla relativa password per il caricamento nel portale di pubblicazione di Gestione API.Before following the steps in this topic, you should have your back-end service configured for client certificate authentication (to configure certificate authentication in Azure WebSites refer to this article), and have access to the certificate and the password for the certificate for uploading in the API Management publisher portal.

Caricare un certificato client Upload a client certificate

Per iniziare, fare clic sul portale di pubblicazione nel Portale di Azure relativo al servizio Gestione API.To get started, click Publisher portal in the Azure Portal for your API Management service. Verrà visualizzato il portale di pubblicazione di Gestione API.This takes you to the API Management publisher portal.

Portale di pubblicazione delle API

Se non è ancora stata creata un'istanza del servizio Gestione API, vedere Creare un'istanza di Gestione API.If you have not yet created an API Management service instance, see Create an API Management service instance.

Fare clic su Sicurezza dal menu Gestione API a sinistra, quindi scegliere Certificati client.Click Security from the API Management menu on the left, and click Client certificates.

Certificati client

Per caricare un nuovo certificato, fare clic su Carica certificato.To upload a new certificate, click Upload certificate.

Carica certificato

Passare al certificato e immettere la relativa password.Browse to your certificate, and then enter the password for the certificate.

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

Carica certificato

Fare clic su Carica per caricare il certificato.Click Upload to upload the certificate.

A questo punto la password del certificato viene convalidata.The certificate password is validated at this time. Se non è corretta, viene visualizzato un messaggio di errore.If it is incorrect an error message is displayed.

Certificato caricato

Una volta caricato il certificato, questo viene visualizzato nella scheda Certificati client . Se si hanno più certificati, prendere nota dell'oggetto o degli ultimi quattro caratteri dell'identificazione personale, che vengono usati per selezionare il certificato quando si configura un'API per l'uso dei certificati, come illustrato nella sezione Configurare un'API per l'uso di un certificato client per l'autenticazione gateway che segue.Once the certificate is uploaded, it appears on the Client certificates tab. If you have multiple certificates, make a note of the subject, or the last four characters of the thumbprint, which are used to select the certificate when configuring an API to use certificates, as covered in the following Configure an API to use a client certificate for gateway authentication section.

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 su Elimina accanto al certificato desiderato.To delete a certificate, click Delete beside the desired certificate.

Eliminazione di un certificato

Fare clic su Sì, elimina per confermare.Click Yes, delete it to confirm.

Conferma dell'eliminazione

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 è necessario prima 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.

Conferma dell'eliminazione

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

Fare clic su API dal menu Gestione API a sinistra, fare clic sul nome dell'API desiderata, quindi sulla scheda Sicurezza.Click APIs from the API Management menu on the left, click the name of the desired API, and click the Security tab.

Sicurezza API

Selezionare Certificati client dall'elenco a discesa Con credenziali.Select Client certificates from the With credentials drop-down list.

Certificati client

Selezionare il certificato desiderato dall'elenco a discesa Certificato client .Select the desired certificate from the Client certificate drop-down list. Se esistono diversi certificati, fare riferimento all'oggetto o agli ultimi quattro caratteri dell'identificazione personale, come spiegato nella sezione precedente, per determinare il certificato corretto.If there are multiple certificates you can look at the subject or the last four characters of the thumbprint as noted in the previous section to determine the correct certificate.

Selezione del certificato

Fare clic su Salva per salvare la modifica di configurazione nell'API.Click Save to save the configuration change to the API.

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.

Salvataggio delle modifiche API

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.

Criteri dei certificati

Certificati autofirmatiSelf-signed certificates

Se si usano i certificati autofirmati, è necessario disabilitare la convalida della catena di certificati affinché la Gestione API possa comunicare con il sistema back-end, altrimenti verrà restituito un codice di errore 500.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, 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

Passaggi successiviNext steps

Per ulteriori informazioni su altri modi per proteggere il servizio back-end, ad esempio autenticazione HTTP di base o segreto condiviso, vedere il video seguente.For more information on other ways to secure your backend service, such as HTTP basic or shared secret authentication, see the following video.