Skip to content

docs(mcp): correct PROD client_id — DEV and PROD have DISTINCT IAS clients - #2709

Merged
jung-thomas merged 1 commit into
DEVfrom
worktree-mcp-prod-clientid-doc
Oct 11, 2026
Merged

jung-thomas merged 1 commit into
DEVfrom
worktree-mcp-prod-clientid-doc

Conversation

@jung-thomas

Copy link
Copy Markdown
Contributor

What

Reverses the incorrect unification from #2700. DEV and PROD each have their own tutorials-identity IAS service instance with a distinct clientid:

Env client_id
DEV 0b1e8b56-5f5d-4ebf-a9e9-28aae2964236
PROD 5a7cb5fd-a0f0-4678-8f51-f8c471e0ab34

Why (the PROD failure, finally root-caused)

#2700 wrongly claimed a single shared client (0b1e8b56…) for both envs. That's why PROD failed live with "server rejected a token it had just issued": the interactive id_token's aud = the supplied client_id (0b1e8b56…), but PROD's tutorials-srv-mcp validates aud against its own instance clientid (5a7cb5fd…) → WrongAudience 401 after a successful browser login.

Proven on PROD 2026-10-11: an M2M JWT (aud=5a7cb5fd…) returns 200 on /mcp-auth/api, and the interactive flow with client_id=5a7cb5fd… now connects end-to-end (Proxy established successfully).

Also fixed (IAS console, config not code)

Added https://developers.sap.com/mcp-oauth/callback to the PROD client (5a7cb5fd…, IAS app 8164289a…) redirect URIs — it had only loopback callbacks. (An earlier addition had landed on the DEV client by mistake.)

Scope

Doc-only (docs/end-users/mcp-quickstart.md) — no code change. The code fix (#2707, id_token-as-Bearer) was correct; the residual PROD failure was purely config: wrong client_id + missing redirect URI, both now resolved.

…ients

Reverses the incorrect unification from #2700. DEV and PROD each have their OWN
tutorials-identity service instance with a DISTINCT clientid:
  - DEV  = 0b1e8b56-5f5d-4ebf-a9e9-28aae2964236
  - PROD = 5a7cb5fd-a0f0-4678-8f51-f8c471e0ab34

#2700 wrongly claimed a single shared client (0b1e8b56…) for both envs. That is
why PROD failed live with "server rejected a token it had just issued": the
interactive id_token's aud = the supplied client_id (0b1e8b56…), but PROD's
tutorials-srv-mcp validates aud against its OWN instance clientid (5a7cb5fd…) →
WrongAudience 401 after a successful browser login. Proven on PROD 2026-10-11:
an M2M JWT (aud=5a7cb5fd…) returns 200 on /mcp-auth/api, and the interactive
flow with client_id=5a7cb5fd… now connects end-to-end.

Also fixed in IAS console (config, not code): added
https://developers.sap.com/mcp-oauth/callback to the PROD client (5a7cb5fd…,
app 8164289a…) redirect URIs — it had only the loopback callbacks. (The earlier
#2667-era addition had gone onto the DEV client by mistake.)

Updates: env table (Production→5a7cb5fd…, Dev→0b1e8b56…), both mcp-remote JSON
snippets (default to PROD id), and the prose (distinct per-env clients, how to
read each env's clientid). Doc-only; no code change.
@jung-thomas
jung-thomas marked this pull request as ready for review October 11, 2026 14:25
@jung-thomas
jung-thomas merged commit 68a0f36 into DEV Oct 11, 2026
4 checks passed
@jung-thomas
jung-thomas deleted the worktree-mcp-prod-clientid-doc branch October 11, 2026 14:25
jung-thomas added a commit that referenced this pull request Oct 11, 2026
release: MCP DCR + consent-proxy clientid fixes → PROD (#2709 #2710 #2711)
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