Disable CAE in microsoft-graph-authz plugin#142848
Merged
jfreden merged 5 commits intoelastic:mainfrom Feb 24, 2026
Merged
Conversation
1df565c to
d6df444
Compare
d6df444 to
f5bdf68
Compare
Collaborator
|
Hi @jfreden, I've created a changelog YAML for you. |
Collaborator
|
Pinging @elastic/es-security (Team:Security) |
richard-dennehy
approved these changes
Feb 23, 2026
Contributor
Author
|
Added test mute for unrelated CI failures in #142926 so going to merge. |
This was referenced Feb 24, 2026
Collaborator
jfreden
added a commit
to jfreden/elasticsearch
that referenced
this pull request
Feb 24, 2026
* Disable CAE in microsoft-graph-authz plugin * Update docs/changelog/142848.yaml
jfreden
added a commit
to jfreden/elasticsearch
that referenced
this pull request
Feb 24, 2026
* Disable CAE in microsoft-graph-authz plugin * Update docs/changelog/142848.yaml
jfreden
added a commit
to jfreden/elasticsearch
that referenced
this pull request
Feb 24, 2026
* Disable CAE in microsoft-graph-authz plugin * Update docs/changelog/142848.yaml
elasticsearchmachine
pushed a commit
that referenced
this pull request
Feb 24, 2026
elasticsearchmachine
pushed a commit
that referenced
this pull request
Feb 24, 2026
elasticsearchmachine
pushed a commit
that referenced
this pull request
Feb 24, 2026
szybia
added a commit
to szybia/elasticsearch
that referenced
this pull request
Feb 24, 2026
…on-sliced-reindex * upstream/main: Update docs for v9.3.1 release (elastic#142887) Update docs for v9.2.6 release (elastic#142888) Improves visibility of vector index options and inference configuration (elastic#141653) Disable CAE in microsoft-graph-authz plugin (elastic#142848) Small improvements to `GetSnapshotsIT#testAllFeatures` (elastic#142825) Fix IndexSettingsTests synthetic ID tests (elastic#142654) [Test] Unmute tests of SnapshotShutdownIT (elastic#142921) Fixing metrics_info.json kibana definition file name (elastic#142813) [Packaging] Disable glibc 2.43 malloc huge pages in Wolfi images (elastic#142894) Mute org.elasticsearch.xpack.searchablesnapshots.SearchableSnapshotsTSDBSyntheticIdIntegTests testSearchableSnapshot elastic#142918 Add shard heap usage to ClusterInfo (elastic#139557) ESQL: Load script fields row-by-row (elastic#142807) ESQL: Consolidate doc values memory tracking (elastic#142816) ES-14124 Create Index Count Limit User documentation Page (elastic#142570) Add a es819 codec test to verify tryRead returns null if may contain duplicates (elastic#142409) Support arithmetic operations for dense_vectors: scalar version (elastic#141060) [Transform] Allow project_routing (elastic#142421) Refactor query rewrite async actions for knn and sparse_vector queries (elastic#142889) Do not mark bulk indexing requests as retried after primary relocations (elastic#142157)
sidosera
pushed a commit
to sidosera/elasticsearch
that referenced
this pull request
Feb 24, 2026
* Disable CAE in microsoft-graph-authz plugin * Update docs/changelog/142848.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves: #142743
Disable CAE in the
AzureIdentityAuthenticationProviderused by the Microsoft Graph authorization realm plugin.Problem
The Microsoft Graph Authz plugin uses
AzureIdentityAuthenticationProviderfrom the Kiota SDK to authenticate with Microsoft Entra via theclient_credentials(service principal) flow. The 3-argument constructor enables CAE by default, which advertises thecp1client capability to Entra.When Entra updates its Conditional Access policies, it issues a CAE claims challenge with
InteractionRequiredand codeTokenCreatedWithOutdatedPolicies. This challenge requires interactive user re-authentication, which is impossible for a service principal.The result is that all users are denied login for up to 1 hour (the token expiry default) or until the coordinator nodes are restarted.
Fix
Pass
isCaeEnabled=falseto theAzureIdentityAuthenticationProviderconstructor:This stops the SDK from advertising
cp1, so Entra:The integration test fixture's mock token endpoint now rejects any token request that advertises the
cp1CAE capability, so all existing integration tests implicitly verify the fix.Why CAE cannot be handled instead of disabled
OkHttpRequestAdapter.retryCAEResponseIfRequiredchecks for 401 responses with claims challenges and retries once with a refreshed token. TheAuthorizationHandlermiddleware (suggested in Microsoft Graph Authz plugin: CAE challenges cause authorization lockout #142743) uses the same mechanism. Since the errorstill surfaces to the application, the retry either did not trigger (claims extraction failed) or the retried request was also rejected.
InteractionRequiredcannot be satisfied byclient_credentials: TheInteractionRequiredresult in the CAE challenge indicates that resolving the outdated-policy condition requires user interaction, which is impossible in a service principal flow.cp1if they can handle claims challenges (docs). Since this plugin usesclient_credentialsand cannot handle interactive challenges, it should notadvertise
cp1.