Skip to content

Document Cedar primary upstream provider selection#849

Draft
tgrunnagle wants to merge 1 commit intomainfrom
authz-upstream-provider_2026-05-07
Draft

Document Cedar primary upstream provider selection#849
tgrunnagle wants to merge 1 commit intomainfrom
authz-upstream-provider_2026-05-07

Conversation

@tgrunnagle
Copy link
Copy Markdown
Contributor

Description

Documents how Cedar resolves its claim source when authorizing requests, with
particular focus on the multi-upstream embedded auth server case on
VirtualMCPServer.

Three doc surfaces updated:

  • concepts/cedar-policies.mdx
    rewrites the "How it works" steps under "Upstream identity provider claims"
    to enumerate the three claim-source cases: primaryUpstreamProvider set;
    unset with an embedded auth server (first upstream); unset with no embedded
    auth server (client request token). Adds a new "How the upstream provider is
    chosen" subsection that splits behavior between VirtualMCPServer and
    MCPServer/MCPRemoteProxy.
  • guides-vmcp/authentication.mdx
    adds a "Cedar authorization claim source" subsection in the embedded auth
    server section, documenting the default-to-first-upstream binding, the
    AuthzUpstreamSelectionWarning advisory condition, the
    primaryUpstreamProvider override syntax, and the two admission rejection
    conditions (AuthzUpstreamUnknown,
    AuthzPrimaryProviderRequiresAuthServer).
  • guides-k8s/auth-k8s.mdx — adds a
    note clarifying that the field is a no-op on MCPServer and
    MCPRemoteProxy (single-upstream model) and surfaces an
    AuthzPrimaryUpstreamProviderIgnored advisory.

Type of change

  • Documentation update

Related issues/PRs

Documents the new incomingAuth.authzConfig.inline.primaryUpstreamProvider
field added by stacklok/toolhive#5199 and the existing operator-side
default-to-first-upstream behavior that was previously undocumented.

Submitter checklist

Content and formatting

  • I have reviewed the content for technical accuracy
  • I have reviewed the content for spelling, grammar, and style

🤖 Generated with Claude Code

Clarify how Cedar resolves its claim source when the embedded auth
server is active: it reads upstream IDP claims only when the runtime
config sets primary_upstream_provider, otherwise it falls back to
claims on the original client request. Document the operator's
default-to-first-upstream behavior on VirtualMCPServer, the new
primaryUpstreamProvider override, and the rejection conditions that
guard misconfiguration. Note that the field is a no-op on MCPServer
and MCPRemoteProxy and surfaces an advisory condition.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 7, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs-website Ready Ready Preview, Comment May 7, 2026 5:53pm

Request Review

@tgrunnagle tgrunnagle closed this May 7, 2026
@tgrunnagle
Copy link
Copy Markdown
Contributor Author

Will amend the next generated updates.

@tgrunnagle tgrunnagle reopened this May 7, 2026
@tgrunnagle tgrunnagle marked this pull request as draft May 7, 2026 18:08
@tgrunnagle
Copy link
Copy Markdown
Contributor Author

Will merge after generated updates for primaryUpstreamProvider changes. This PR addresses existing gaps so some parts may not be picked up in generated changes.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant