An Azure service that provides a hybrid, multi-cloud management platform for APIs.
Welcome to the Microsoft Q&A Platform! Thank you for asking your question here.
Please find the response below to the questions asked and let me know if you have any questions.
- Is it expected that a client certificate configured on a Backend entity is never automatically applied during outbound TLS? For standard HTTP (
Custom URL) backends, yes, this is expected. Unlike Basic Authentication or Headers configured on a Backend entity - which are automatically injected into the HTTP request. Client certificates dictate the lower-level TLS handshake. For HTTP backends, APIM requires you to explicitly use the<authentication-certificate>policy to instruct the gateway to present the certificate during the outbound TLS connection. Reference: Azure API Management policy reference - authentication-certificate - Does the Backend entity client certificate configuration have any runtime effect without using the
authentication-certificatepolicy? For HTTP backends, it has no automatic runtime effect. It acts purely as a declarative metadata configuration. However, it does have a runtime effect for Service Fabric backends. When configuring a Service Fabric backend in APIM, the gateway automatically uses the client certificate configured on the Backend entity to establish mutual TLS (mTLS) with the Service Fabric management endpoint to securely discover and resolve backend services. In this specific scenario, it works without needing an explicit authentication-certificate policy. Reference: Set up Service Fabric Backend in Azure API Management - Is the intended design pattern always: upload certificate -> configure Backend -> explicitly reference the certificate again in policy? For standard HTTP backends, you actually do not need to configure the client certificate on the Backend entity at all. The intended design pattern is strictly:
- Upload/Reference the certificate in the APIM Certificates store (e.g., linked to Azure Key Vault).
- Explicitly reference the certificate in your policy using
<authentication-certificate certificate-id="your-cert-id" />.
<authentication-certificate>policy into your API's policy definition for you. As noted in a tip in the official documentation:
Reference: Secure backend services by using client certificate authentication in Azure API Management"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."