Skip to content

Enterprise-managed auth: ID-JAG resource claim should be optional #1404

Open

Description

@daviddanialy

IdJagClaims.resource in transport/auth/enterprise.rs is required, so an ID-JAG without a resource claim fails with "malformed ID-JAG claims".

The spec makes it optional. The MCP EMA extension §4.3 says the claim "MUST contain the Resource Identifier of the MCP Server if present", and ID-JAG draft-04 §3.1 lists it as OPTIONAL. Some enterprise IdPs omit it, so rmcp-based clients such as Codex reject valid assertions.

Proposed fix: make the claim Option<Resource>. Exact-match it when present (as today); when absent, rely on the existing aud check. Still reject an explicit null, "" or [].

Happy to send a PR with tests.

Activity

  1. added
    bugSomething is not working
    P1High: significant functionality gap or spec violation
    T-securitySecurity-related changes
    T-transportTransport layer changes
    ready for workIssue is well-defined and ready to be picked up
    on Oct 28, 2026
  2. github-actions commented on Oct 28, 2026

    @github-actions
    Contributor

    @gocamille is on triage rotation this week and is the reviewer for this one.

    Codex labeled this bug / P1 (T-security, T-transport). Please confirm or correct those labels.

    Automated triage. Labels are a first pass and the assigned maintainer has the final say.

  3. daviddanialy commented on Oct 28, 2026

    @daviddanialy
    Author

    Confirmed with Okta Cross App Access (their enterprise-managed auth implementation): its ID-JAGs omit resource even when the token exchange request includes resource=. So rmcp-based clients can't use Okta-issued ID-JAGs today.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1High: significant functionality gap or spec violationT-securitySecurity-related changesT-transportTransport layer changesbugSomething is not workingready for workIssue is well-defined and ready to be picked up

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions