Skip to content

Commit 25c38dd

Browse files
Incorporated the review comments/feedback from Anthony.
1 parent bddfc84 commit 25c38dd

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

articles/container-apps/client-certificate-authorization.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ services: container-apps
55
author: craigshoemaker
66
ms.service: azure-container-apps
77
ms.topic: how-to
8-
ms.date: 05/15/2025
8+
ms.date: 06/26/2025
99
ms.author: cshoe
1010
---
1111

@@ -17,7 +17,7 @@ When client certificates are used, the TLS certificates are exchanged between th
1717

1818
For example, you might want to require a client certificate for a container app that manages sensitive data.
1919

20-
Container Apps accepts client certificates in the PKCS12 format are that issued by a trusted certificate authority (CA), or are self-signed.
20+
Container Apps accepts client certificates in the PKCS12 format when a trusted certificate authority (CA) issues them or when they're self-signed.
2121

2222
## Configure client certificate authorization
2323

@@ -38,7 +38,7 @@ The following ARM template example configures ingress to require a client certif
3838
"properties": {
3939
"configuration": {
4040
"ingress": {
41-
"clientCertificateMode": "require | accept | ignore"
41+
"clientCertificateMode": "require"
4242
}
4343
}
4444
}
@@ -49,7 +49,7 @@ The following ARM template example configures ingress to require a client certif
4949
5050
Before you run the following commands, make sure to replace the placeholders surrounded by `<>` with your own values.
5151

52-
Get the ARM ID of your container app:
52+
Get the Azure Resource Manager (ARM) ID of your container app:
5353

5454
```bash
5555
APP_ID=$(az containerapp show \
@@ -79,18 +79,28 @@ az rest \
7979
> [!NOTE]
8080
> Be sure to use a valid and stable API version that supports this feature. For example, replace <API_VERSION> in the command with 2025-01-01 or another supported version.
8181
82+
## Client certificate mode and header format
83+
8284
The value for `clientCertificateMode` varies what you need to provide for Container Apps to manage your certificate:
8385
- When `require` is set, the client must provide a certificate.
8486
- When `accept` is set, the certificate is optional. If the client provides a certificate, it passes to the app in the `X-Forwarded-Client-Cert` header, as a semicolon-separated list.
8587

86-
For example:
88+
### Example `X-Forwarded-Client-Cert` header value
8789

88-
Before you use the following example, make sure to replace the placeholders surrounded by `<>` with your own values.
90+
The following example is a sample value of the `X-Forwarded-Client-Cert` header that your app might receive:
8991

9092
```text
9193
Hash=<HASH_VALUE>;Cert="-----BEGIN CERTIFICATE-----<CERTIFICATE_VALUE>";Chain="-----BEGIN CERTIFICATE-----<CERTIFICATE_VALUE>";
9294
```
9395

96+
### Header field breakdown
97+
98+
| Field | Description | How to Use It |
99+
| `Hash` | The SHA-256 thumbprint of the client certificate. | Use the thumbprint to identify or validate the client certificate. |
100+
| `Cert` | The base64-encoded client certificate in PEM format (single certificate). | Parse the certificate to inspect metadata such as subject and issuer. |
101+
| `Chain` | One or more PEM-encoded intermediate certificates. | Provide the intermediate certificates when building a full trust chain for validation. |
102+
103+
94104
## Next Steps
95105

96106
> [!div class="nextstepaction"]

0 commit comments

Comments
 (0)