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
Adding the `cp1` client‑capability tells Azure AD your service can handle Continuous Access Evaluation (CAE) claims challenges. Tokens will include an extra xms_cc claim, allowing near‑realtime revocation.
5
+
Adding the `cp1` client‑capability tells Microsoft Entra ID your service can handle Continuous Access Evaluation (CAE) claims challenges. Tokens will include an extra xms_cc claim, allowing near‑realtime revocation.
6
6
7
-
## Purpose
7
+
## Overview
8
8
9
-
This guide shows how to declare the cp1 client capability (Continuous Access Evaluation)
10
-
in a .NET service that authenticates with Managed Identity and calls
11
-
resources through Microsoft.Identity.Web’s Downstream API helpers. You’ll learn
12
-
how to configure appsettings.json, acquire a CAE‑ready token (xms_cc=cp1),
13
-
and optionally invoke Azure Key Vault — all without secrets or certificates.
9
+
cp1 signals to Microsoft Entra ID that a workload identity can handle Continuous Access Evaluation (CAE) claims challenges. When a token includes the extra xms_cc claim, Azure can revoke the token (or demand additional claims) in near‑realtime.
14
10
15
-
## Prerequisites
11
+
This spec adds declarative cp1 and claims challenge auto‑handling to Managed Identity flows in Microsoft.Identity.Web (Id.Web). The goal is zero‑touch for most developers: a single configuration knob at startup, automatic 401/claims recovery at runtime.
|**App-level**|`AzureAd` root → `ClientCapabilities`|`ClientCapabilities: [ "cp1" ]`<br>`Instance`, `TenantId`, credentials |**Process-wide** — set once at startup | MSAL builds the client object **once**; everything here is stamped onto **every** token request. |
32
-
|**Request-level**|`AcquireTokenOptions` (inside each *DownstreamApi* entry, or passed programmatically) | • `ManagedIdentity.UserAssignedClientId`<br>• `Claims` (CAE challenges)<br>• `ForceRefresh`<br>• `UseMtlsPoP`|**Per token call**| These knobs can differ by resource or retry and therefore belong in the per-call options object. |
22
+
## Design Goals
33
23
34
-
### Why `cp1` stays at the App-level
35
-
***Identity of the client** – signals a *capability of the app*, not an individual request.
Server dashboards add MI success‑rate with/without cp1.
114
75
115
76
## Options as seen in MSAL
116
77
117
-

78
+

79
+
80
+
### reference - [How to use Continuous Access Evaluation enabled APIs in your applications](https://learn.microsoft.com/en-us/entra/identity-platform/app-resilience-continuous-access-evaluation?tabs=dotnet)
0 commit comments