Uh oh!
There was an error while loading. Please reload this page.
feat(auth): bind DCR client credentials to issuing authorization server (SEP-2352) - #998
Conversation
| token_response: Some(token_result.clone()), | ||
| granted_scopes, | ||
| token_received_at: Some(Self::now_epoch_secs()), | ||
| issuer: self.metadata_issuer(), |
There was a problem hiding this comment.
We now stamp issuer: self.metadata_issuer() here, but nothing reads it back. After a migration, what stops a static pre-registered credential from being silently sent to the new AS, the case where SEP-2352 says clients "SHOULD surface an error"?
There was a problem hiding this comment.
good catch. initialize_from_store now returns an AuthorizationServerMismatch error on issuer change
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
0c9c067 to
7696cf8CompareUh oh!
There was an error while loading. Please reload this page.
d051669 to
6dac387Comparealexhancock
commented
Jul 18, 2026
I applied your suggestion @DaleSeo but had to squash to satisfy commitlint. Can you re-stamp? TY! |
Uh oh!
There was an error while loading. Please reload this page.
Motivation and Context
Per modelcontextprotocol/modelcontextprotocol#2352 clients SHOULD maintain separate registration state per auth server and MUST NOT assume cross-AS credential validity
How Has This Been Tested?
Conformance tests
Breaking Changes
None.
StoredCredentialsis #[non_exhaustive] and has anewconstructorTypes of changes
Checklist
Additional context
Closes#879