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
+22-19Lines changed: 22 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,9 +20,9 @@ ms.custom:
20
20
21
21
API Management provides the capability to secure access to APIs (that is, 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.
22
22
23
-
For information about securing access to the backend service of an API using client certificates (that is, API Management to backend), see [How to secure back-end services using client certificate authentication](./api-management-howto-mutual-certificates.md).
23
+
For information about securing access to the backend service of an API using client certificates or API Management to backend, see [Secure backend services](./api-management-howto-mutual-certificates.md).
24
24
25
-
For a conceptual overview of API authorization, see [Authentication and authorization to APIs in API Management](authentication-authorization-overview.md).
25
+
For a conceptual overview of API authorization, see [Authentication and authorization](authentication-authorization-overview.md).
26
26
27
27
## Certificate options
28
28
@@ -41,13 +41,13 @@ Using key vault certificates is recommended because it helps improve API Managem
41
41
42
42
## Prerequisites
43
43
44
-
* If you have not created an API Management service instance yet, see [Create an API Management service instance](get-started-create-service-instance.md).
44
+
* If you haven't created an API Management service instance yet, see [Create an API Management service instance](get-started-create-service-instance.md).
45
45
* 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 either CER or PFX format. Self-signed certificates are allowed.
46
46
47
47
If you use a self-signed certificate, also install trusted root and intermediate [CA certificates](api-management-howto-ca-certificates.md) in your API Management instance.
48
48
49
49
> [!NOTE]
50
-
> CA certificates for certificate validation are not supported in the Consumption tier.
50
+
> CA certificates for certificate validation aren't supported in the Consumption tier.
@@ -58,14 +58,14 @@ Using key vault certificates is recommended because it helps improve API Managem
58
58
59
59
### Developer, Basic, Standard, or Premium tier
60
60
61
-
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.
61
+
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 for **Custom domains**.
:::image type="content" source="./media/api-management-howto-mutual-certificates-for-clients/negotiate-client-certificate.png" alt-text="Screenshot shows the negotiate client certificate option for a custom domain.":::
64
64
65
65
### Consumption, Basic v2, Standard v2, or Premium v2 tier
66
-
To receive and verify client certificates in the Consumption, Basic v2, Standard v2, or Premium v2 tier, you must enable the **Request client certificate** setting on the **Custom domains** blade as shown below.
66
+
To receive and verify client certificates in the Consumption, Basic v2, Standard v2, or Premium v2 tier, you must enable the **Request client certificate** setting for **Custom domains**.
:::image type="content" source="./media/api-management-howto-mutual-certificates-for-clients/request-client-certificate.png" alt-text="Screenshot shows the option to request client certificate for custom domains.":::
69
69
70
70
## Policy to validate client certificates
71
71
@@ -78,12 +78,12 @@ Configure the policy to validate one or more attributes including certificate is
78
78
You can also create policy expressions with the [`context` variable](api-management-policy-expressions.md#ContextVariables) to check client certificates. Examples in the following sections show expressions using the `context.Request.Certificate` property and other `context` properties.
79
79
80
80
> [!NOTE]
81
-
> Mutual certificate authentication might not function correctly when the API Management gateway endpoint is exposed through the Application Gateway. This is because Application Gateway functions as a Layer 7 load balancer, establishing a distinct SSL connection with the backend API Management service. Consequently, the certificate attached by the client in the initial HTTP request will not be forwarded to APIM. However, as a workaround, you can transmit the certificate using the server variables option. For detailed instructions, refer to [Mutual Authentication Server Variables](../application-gateway/rewrite-http-headers-url.md#mutual-authentication-server-variables).
81
+
> Mutual certificate authentication might not function correctly when the API Management gateway endpoint is exposed through the Application Gateway. The Application Gateway functions as a Layer 7 load balancer, establishing a distinct TLS connection with the backend API Management service. The certificate attached by the client in the initial HTTP request isn't forwarded to APIM. However, as a workaround, you can transmit the certificate using the server variables option. For detailed instructions, refer to [Mutual Authentication Server Variables](../application-gateway/rewrite-http-headers-url.md#mutual-authentication-server-variables).
82
82
83
83
> [!IMPORTANT]
84
84
> * Starting May 2021, the `context.Request.Certificate` property only requests the certificate when the API Management instance's [`hostnameConfiguration`](/rest/api/apimanagement/current-ga/api-management-service/create-or-update#hostnameconfiguration) sets the `negotiateClientCertificate` property to True. By default, `negotiateClientCertificate` is set to False.
85
-
> * If TLS renegotiation is disabled in your client, you may see TLS errors when requesting the certificate using the `context.Request.Certificate` property. If this occurs, enable TLS renegotiation settings in the client.
86
-
> * Certification renegotiation is not supported in the API Management v2 tiers.
85
+
> * If TLS renegotiation is disabled in your client, you might see TLS errors when requesting the certificate using the `context.Request.Certificate` property. If the errors appear, enable TLS renegotiation settings in the client.
86
+
> * Certification renegotiation isn't supported in the API Management v2 tiers.
87
87
88
88
### Checking the issuer and subject
89
89
@@ -101,7 +101,8 @@ Below policies can be configured to check the issuer and subject of a client cer
101
101
102
102
> [!NOTE]
103
103
> To disable checking certificate revocation list, use `context.Request.Certificate.VerifyNoRevocation()` instead of `context.Request.Certificate.Verify()`.
104
-
> If client certificate is self-signed, root (or intermediate) CA certificate(s) must be [uploaded](api-management-howto-ca-certificates.md) to API Management for `context.Request.Certificate.Verify()` and `context.Request.Certificate.VerifyNoRevocation()` to work.
104
+
>
105
+
> If client certificate is self-signed, root (or intermediate) CA certificates must be [uploaded](api-management-howto-ca-certificates.md) to API Management for `context.Request.Certificate.Verify()` and `context.Request.Certificate.VerifyNoRevocation()` to work.
105
106
106
107
### Checking the thumbprint
107
108
@@ -119,7 +120,7 @@ Below policies can be configured to check the thumbprint of a client certificate
119
120
120
121
> [!NOTE]
121
122
> To disable checking certificate revocation list, use `context.Request.Certificate.VerifyNoRevocation()` instead of `context.Request.Certificate.Verify()`.
122
-
> If client certificate is self-signed, root (or intermediate) CA certificate(s) must be [uploaded](api-management-howto-ca-certificates.md) to API Management for `context.Request.Certificate.Verify()` and `context.Request.Certificate.VerifyNoRevocation()` to work.
123
+
> If client certificate is self-signed, root (or intermediate) CA certificates must be [uploaded](api-management-howto-ca-certificates.md) to API Management for `context.Request.Certificate.Verify()` and `context.Request.Certificate.VerifyNoRevocation()` to work.
123
124
124
125
### Checking a thumbprint against certificates uploaded to API Management
125
126
@@ -138,14 +139,16 @@ The following example shows how to check the thumbprint of a client certificate
138
139
139
140
> [!NOTE]
140
141
> To disable checking certificate revocation list, use `context.Request.Certificate.VerifyNoRevocation()` instead of `context.Request.Certificate.Verify()`.
141
-
> If client certificate is self-signed, root (or intermediate) CA certificate(s) must be [uploaded](api-management-howto-ca-certificates.md) to API Management for `context.Request.Certificate.Verify()` and `context.Request.Certificate.VerifyNoRevocation()` to work.
142
+
>
143
+
> If client certificate is self-signed, root (or intermediate) CA certificates must be [uploaded](api-management-howto-ca-certificates.md) to API Management for `context.Request.Certificate.Verify()` and `context.Request.Certificate.VerifyNoRevocation()` to work.
142
144
143
145
> [!TIP]
144
-
> Client certificate deadlock issue described in this [article](https://techcommunity.microsoft.com/t5/Networking-Blog/HTTPS-Client-Certificate-Request-freezes-when-the-Server-is/ba-p/339672) can manifest itself in several ways, e.g. requests freeze, requests result in `403 Forbidden` status code after timing out, `context.Request.Certificate` is `null`. This problem usually affects `POST` and `PUT` requests with content length of approximately 60KB or larger.
145
-
> To prevent this issue from occurring turn on "Negotiate client certificate" setting for desired hostnames on the "Custom domains" blade as shown in the first image of this document. This feature is not available in the Consumption tier.
146
+
> Client certificate deadlock issue described in this [article](https://techcommunity.microsoft.com/t5/Networking-Blog/HTTPS-Client-Certificate-Request-freezes-when-the-Server-is/ba-p/339672) can manifest itself in several ways, for example, requests freeze, requests result in `403 Forbidden` status code after timing out, `context.Request.Certificate` is `null`. This problem usually affects `POST` and `PUT` requests with content length of approximately 60KB or larger.
147
+
>
148
+
> To prevent this issue from occurring, turn on "Negotiate client certificate" setting for desired hostnames for "Custom domains" as shown in the first image of this document. This feature isn't available in the Consumption tier.
146
149
147
150
## Related content
148
151
149
-
-[How to secure backend services using client certificate authentication](./api-management-howto-mutual-certificates.md)
150
-
-[How to add a custom CA certificate in Azure API Management](./api-management-howto-ca-certificates.md)
151
-
- Learn about [policies in API Management](api-management-howto-policies.md)
152
+
-[Secure backend services in Azure API Management](./api-management-howto-mutual-certificates.md)
153
+
-[How to add a custom CA certificate in Azure API Management](./api-management-howto-ca-certificates.md)
154
+
-[Policies in Azure API Management](api-management-howto-policies.md)
Copy file name to clipboardExpand all lines: includes/api-management-client-certificate-key-vault.md
+12-8Lines changed: 12 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,6 @@ ms.custom: sfi-image-nochange
10
10
### Prerequisites for key vault integration
11
11
12
12
1. If you don't already have a key vault, create one. For information about creating a key vault, see [Quickstart: Create a key vault using the Azure portal](/azure/key-vault/general/quick-create-portal).
13
-
14
13
15
14
1. Enable a system-assigned or user-assigned [managed identity](../articles/api-management/api-management-howto-use-managed-service-identity.md) in API Management.
16
15
@@ -38,14 +37,20 @@ To add a key vault certificate to API Management:
38
37
1. In **Id**, enter a name.
39
38
1. In **Certificate**, select **Key vault**.
40
39
1. Enter the identifier of a key vault certificate, or choose **Select** to select a certificate from a key vault.
41
-
> [!IMPORTANT]
42
-
> If you enter a key vault certificate identifier yourself, be sure that it doesn't have version information. Otherwise, the certificate won't rotate automatically in API Management after an update in the key vault.
40
+
41
+
> [!IMPORTANT]
42
+
>
43
+
> If you enter a key vault certificate identifier yourself, be sure that it doesn't have version information. Otherwise, the certificate won't rotate automatically in API Management after an update in the key vault.
44
+
43
45
1. In **Client identity**, select a system-assigned identity or an existing user-assigned managed identity. For more information, see [Use managed identities in Azure API Management](../articles/api-management/api-management-howto-use-managed-service-identity.md).
44
-
> [!NOTE]
45
-
> The identity needs to have permissions to get and list certificates from the key vault. If you haven't already configured access to the key vault, API Management prompts you so that it can automatically configure the identity with the necessary permissions.
46
+
47
+
> [!NOTE]
48
+
>
49
+
> The identity needs to have permissions to get and list certificates from the key vault. If you haven't already configured access to the key vault, API Management prompts you so that it can automatically configure the identity with the necessary permissions.
50
+
46
51
1. Select **Add**.
47
52
48
-
:::image type="content" source="../articles/api-management/media/api-management-howto-mutual-certificates/apim-client-cert-kv.png" alt-text="Screenshot that shows how to add a key vault certificate to API Management in the portal." lightbox="../articles/api-management/media/api-management-howto-mutual-certificates/apim-client-cert-kv.png":::
53
+
:::image type="content" source="../articles/api-management/media/api-management-howto-mutual-certificates/apim-client-cert-kv.png" alt-text="Screenshot that shows how to add a key vault certificate to API Management in the portal." lightbox="../articles/api-management/media/api-management-howto-mutual-certificates/apim-client-cert-kv.png":::
49
54
50
55
1. Select **Save**.
51
56
@@ -61,7 +66,6 @@ To upload a client certificate to API Management:
61
66
1. Browse to select the certificate .pfx file, and enter its password.
62
67
1. Select **Add**.
63
68
64
-
:::image type="content" source="../articles/api-management/media/api-management-howto-mutual-certificates/apim-client-cert-add.png" alt-text="Screenshot of uploading a client certificate to API Management in the portal.":::
65
-
69
+
:::image type="content" source="../articles/api-management/media/api-management-howto-mutual-certificates/apim-client-cert-add.png" alt-text="Screenshot of uploading a client certificate to API Management in the portal.":::
Copy file name to clipboardExpand all lines: includes/api-management-key-vault-access.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,14 +2,14 @@
2
2
author: dlepow
3
3
ms.service: azure-api-management
4
4
ms.topic: include
5
-
ms.date: 01/11/2023
5
+
ms.date: 01/29/2026
6
6
ms.author: danlep
7
7
---
8
8
9
9
### Configure access to key vault
10
10
11
-
1. In the portal, go to your key vault.
12
-
1. In the left menu, select **Settings** > **Access configuration**. Note the **Permission model** that's configured.
11
+
1. In the Azure portal, go to your key vault.
12
+
1. In the left menu, select **Settings** > **Access configuration**. Make a note of the configured **Permission model**.
13
13
1. Depending on the permission model, configure either a [key vault access policy](/azure/key-vault/general/assign-access-policy) or [Azure RBAC access](/azure/key-vault/general/rbac-guide) for an API Management managed identity.
Copy file name to clipboardExpand all lines: includes/api-management-key-vault-network.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
author: dlepow
3
3
ms.service: azure-api-management
4
4
ms.topic: include
5
-
ms.date: 12/18/2025
5
+
ms.date: 01/29/2026
6
6
ms.author: danlep
7
7
---
8
8
@@ -15,18 +15,18 @@ If [Key Vault firewall](/azure/key-vault/general/network-security) is enabled on
15
15
16
16
* In Key Vault firewall, enable the **Allow Trusted Microsoft Services to bypass this firewall** option. API Management supports trusted service connectivity to access the key vault for control-plane options.
17
17
18
-
* Ensure that your local client IP address is allowed to access the key vault temporarily while you select a certificate or secret to add to Azure API Management. For more information, see [Configure Azure Key Vault networking settings](/azure/key-vault/general/how-to-azure-key-vault-network-security).
18
+
* Ensure that your local client IP address is allowed to access the key vault temporarily. You must select a certificate or secret to add to Azure API Management. For more information, see [Configure Azure Key Vault networking settings](/azure/key-vault/general/how-to-azure-key-vault-network-security).
19
19
20
20
After completing the configuration, you can block your client address in the key vault firewall.
21
21
22
22
> [!IMPORTANT]
23
-
> Starting March 2026, trusted service connectivity to Azure services from the API Management gateway by enabling the **Allow Trusted Microsoft Services to bypass this firewall** firewall setting will no longer be supported. To continue accessing these services from the API Management gateway after this change, ensure that you choose a different supported network access option. For control-plane operations, you can continue to use trusted service connectivity. [Learn more](../articles/api-management/breaking-changes/trusted-service-connectivity-retirement-march-2026.md).
23
+
> Starting March 2026, trusted service connectivity to Azure services from the API Management gateway by enabling the **Allow Trusted Microsoft Services to bypass this firewall** firewall setting aren't supported. To continue accessing these services from the API Management gateway after this change, ensure that you choose a different supported network access option. For control-plane operations, you can continue to use trusted service connectivity. [Learn more](../articles/api-management/breaking-changes/trusted-service-connectivity-retirement-march-2026.md).
24
24
25
25
#### Virtual network requirements
26
26
27
27
If the API Management instance is deployed in a virtual network, also configure the following network settings:
28
28
29
29
* Enable a [service endpoint](/azure/key-vault/general/overview-vnet-service-endpoints) to Key Vault on the API Management subnet.
30
-
* Configure a network security group (NSG) rule to allow outbound traffic to the AzureKeyVault and AzureActiveDirectory [service tags](../articles/virtual-network/service-tags-overview.md).
30
+
* Configure a network security group (NSG) rule to allow outbound traffic to the `AzureKeyVault` and `AzureActiveDirectory`[service tags](../articles/virtual-network/service-tags-overview.md).
31
31
32
32
For details, see [Network configuration when setting up API Management in a virtual network](../articles/api-management/virtual-network-reference.md).
0 commit comments