You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/api-management/api-management-howto-mutual-certificates-for-clients.md
+20-13Lines changed: 20 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,21 +8,22 @@ author: dlepow
8
8
9
9
ms.service: api-management
10
10
ms.topic: article
11
-
ms.date: 06/01/2021
11
+
ms.date: 01/12/2023
12
12
ms.author: danlep
13
+
ms.custom: engagement-fy23
13
14
---
14
15
15
16
# How to secure APIs using client certificate authentication in API Management
16
17
17
-
API Management provides the capability to secure access to APIs (i.e., client to API Management) using client certificates. You can validate certificates presented by the connecting client and check certificate properties against desired values using policy expressions.
18
+
API Management provides the capability to secure access to APIs (i.e., client to API Management) using client certificates and mutual TLS authentication. You can validate certificates presented by the connecting client and check certificate properties against desired values using policy expressions.
18
19
19
-
For information about securing access to the back-end service of an API using client certificates (i.e., API Management to backend), see [How to secure back-end services using client certificate authentication](./api-management-howto-mutual-certificates.md).
20
+
For information about securing access to the backend service of an API using client certificates (i.e., API Management to backend), see [How to secure back-end services using client certificate authentication](./api-management-howto-mutual-certificates.md).
20
21
21
22
For a conceptual overview of API authorization, see [Authentication and authorization in API Management](authentication-authorization-overview.md#gateway-data-plane).
22
23
23
24
## Certificate options
24
25
25
-
If you choose to use API Management to manage client certificates, you have the following options:
26
+
For certificate validation, API Management can check one or more specified client certificate attributes, or check against certificates managed in your API Management instance. If you choose to use API Management to manage client certificates, you have the following options:
26
27
27
28
* Reference a certificate managed in [Azure Key Vault](../key-vault/general/overview.md)
28
29
* Add a certificate file directly in API Management
@@ -35,21 +36,26 @@ Using key vault certificates is recommended because it helps improve API Managem
35
36
36
37
## Prerequisites
37
38
38
-
* If you have not created an API Management service instance yet, see [Create an API Management service instance][Create an API Management service instance].
39
-
* You need access to the certificate and the password for management in an Azure key vault or upload to the API Management service. The certificate must be in **PFX** format. Self-signed certificates are allowed.
39
+
* If you have not created an API Management service instance yet, see [Create an API Management service instance](get-started-create-service-instance.md).
40
+
* You need access to the certificate and the password for management in an Azure key vault or upload to the API Management service. The certificate must be in **PFX** format. Self-signed certificates are allowed.
41
+
42
+
If you use a self-signed certificate, also [install a CA root certificate](api-management-howto-ca-certificates.md) in your API Management instance.
43
+
44
+
> [!NOTE]
45
+
> CA root certificates for certificate validation are not supported in the Consumption tier.
## Enable API Management instance to receive and verify client certificates
43
50
44
-
##Enable API Management instance to negotiate client certificates
51
+
### Developer, Basic, Standard, or Premium tier
45
52
46
-
> [!IMPORTANT]
47
-
> To receive and verify client certificates over HTTP/2 in the Developer, Basic, Standard, or Premium tiers you must enable the **Negotiate client certificate** setting on the **Custom domain** blade as shown below.
53
+
To receive and verify client certificates over HTTP/2 in the Developer, Basic, Standard, or Premium tie,s you must enable the **Negotiate client certificate** setting on the **Custom domain** blade as shown below.
> To receive and verify client certificates in the Consumption tier, you must enable the **Request client certificate** setting on the **Custom domains** blade as shown below.
57
+
### Consumption tier
58
+
To receive and verify client certificates in the Consumption tier, you must enable the **Request client certificate** setting on the **Custom domains** blade as shown below.
# Secure backend services using client certificate authentication in Azure API Management
17
17
18
-
API Management allows you to secure access to the backend service of an API using client certificates. This guide shows how to manage certificates in an Azure API Management service instance using the Azure portal. It also explains how to configure an API to use a certificate to access a backend service.
18
+
API Management allows you to secure access to the backend service of an API using client certificates and mutual TLS authentication. This guide shows how to manage certificates in an Azure API Management service instance using the Azure portal. It also explains how to configure an API to use a certificate to access a backend service.
19
19
20
20
You can also manage API Management certificates using the [API Management REST API](/rest/api/apimanagement/current-ga/certificate).
21
21
@@ -36,16 +36,21 @@ Using key vault certificates is recommended because it helps improve API Managem
* If you have not created an API Management service instance yet, see [Create an API Management service instance][Create an API Management serviceinstance].
39
+
* If you have not created an API Management service instance yet, see [Create an API Management service instance](get-started-create-service-instance.md).
40
40
* You should have your backend service configured for client certificate authentication. To configure certificate authentication in the Azure App Service, refer to [this article][to configure certificate authentication in Azure WebSites refer to this article].
41
-
* You need access to the certificate and the password for management in an Azure key vault or upload to the API Management service. The certificate must be in **PFX** format. Self-signed certificates are allowed.
41
+
* You need access to the certificate and the password for management in an Azure key vault or upload to the API Management service. The certificate must be in **PFX** format. Self-signed certificates are allowed.
42
+
43
+
If you use a self-signed certificate:
44
+
*[Install a CA root certificate](api-management-howto-ca-certificates.md) in your API Management instance.
45
+
46
+
> [!NOTE]
47
+
> CA root certificates for certificate validation are not supported in the Consumption tier.
After the certificate is uploaded, it shows in the **Certificates** window. 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](#configure-an-api-to-use-client-certificate-for-gateway-authentication).
46
53
47
-
> [!NOTE]
48
-
> To turn off certificate chain validation when using, for example, a self-signed certificate, follow the steps described in [Self-signed certificates](#self-signed-certificates), later in this article.
49
54
50
55
## Configure an API to use client certificate for gateway authentication
51
56
@@ -64,7 +69,7 @@ After the certificate is uploaded, it shows in the **Certificates** window. If y
64
69
> [!TIP]
65
70
> When a certificate is specified for gateway authentication for the backend service of an API, it becomes part of the policy for that API, and can be viewed in the policy editor.
66
71
67
-
## Self-signed certificates
72
+
## Disable certificate chain validation for self-signed certificates
68
73
69
74
If you are using self-signed certificates, you will need to disable certificate chain validation for API Management to communicate with the backend system. Otherwise it will return a 500 error code. To configure this, you can use the [`New-AzApiManagementBackend`](/powershell/module/az.apimanagement/new-azapimanagementbackend) (for new backend) or [`Set-AzApiManagementBackend`](/powershell/module/az.apimanagement/set-azapimanagementbackend) (for existing backend) PowerShell cmdlets and set the `-SkipCertificateChainValidation` parameter to `True`.
70
75
@@ -87,6 +92,7 @@ To delete a certificate, select it and then select **Delete** from the context m
87
92
## Next steps
88
93
89
94
*[How to secure APIs using client certificate authentication in API Management](api-management-howto-mutual-certificates-for-clients.md)
95
+
*[How to add a custom CA certificate in Azure API Management](./api-management-howto-ca-certificates.md)
90
96
* Learn about [policies in API Management](api-management-howto-policies.md)
Copy file name to clipboardExpand all lines: includes/api-management-client-certificate-key-vault.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ ms.author: danlep
12
12
13
13
To create or import a certificate to the key vault, see [Quickstart: Set and retrieve a certificate from Azure Key Vault using the Azure portal](../articles/key-vault/certificates/quick-create-portal.md).
14
14
15
-
* Enable a system-assigned or user-assigned [managed identity](../articles/api-management-howto-use-managed-service-identity.md) in the API Management instance.
15
+
* Enable a system-assigned or user-assigned [managed identity](../articles/api-management/api-management-howto-use-managed-service-identity.md) in the API Management instance.
0 commit comments