Added
- A pinned server can receive the person’s ID token next to its grant. A server that acts for the person on two systems needs two of their credentials – the grant of its pinned authorization server (a GitHub App user token, say) and the person’s own identity for calls back through muster – but an
MCPServercarried one:forwardTokenis rejected next toauthorizationServer, so such a server was registered twice.spec.auth.forwardIdentity: true, valid only withtype: oauthand anauthorizationServerpin (CEL rule, and the same check in filesystem mode andcore_mcpserver_validate), sends the session’s upstream ID token – the tokenforwardTokenwould put inAuthorization, read on every request so a refreshed one is used – in theX-Muster-Id-Tokenheader;Authorizationkeeps the pinned grant. A session without an upstream ID token sends no header, a server without the field never receives it, the server’srequiredAudiencesare requested at login as for aforwardTokenserver, and a change of the field resets the sessions’ connections. As withforwardToken, the forwarded token is not audience-scoped to the server.muster create mcpservergained--forward-identity. (#1317)