codex-manual.md +21 −3
19737 19737
19738If you support CIMD, set `client_id_metadata_document_supported: true` in your authorization server metadata. This lets ChatGPT use one stable client identity for connectors that choose CIMD, which your authorization server can use for redirect URI allowlists, rate limits, and other policies.19738If you support CIMD, set `client_id_metadata_document_supported: true` in your authorization server metadata. This lets ChatGPT use one stable client identity for connectors that choose CIMD, which your authorization server can use for redirect URI allowlists, rate limits, and other policies.
19739 19739
1974019740ChatGPT's production CIMD document advertises both supported client authentication methods using the [OpenID Connect RP Metadata Choices](https://openid.net/specs/openid-connect-rp-metadata-choices-1_0-final.html) client metadata field:ChatGPT is adopting the CIMD transition proposed in
19741[MCP SEP-3149](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/3149).
19742Its production CIMD document publishes
19743`token_endpoint_auth_methods_supported` as an array of methods that ChatGPT
19744can use, with no preference order. During the transition, it also publishes
19745the legacy singular `token_endpoint_auth_method` as a preference:
19741 19746
19742```json19747```json
19743{19748{
1974419749 "token_endpoint_auth_methods_supported": ["none", "private_key_jwt"] "token_endpoint_auth_methods_supported": ["none", "private_key_jwt"],
19750 "token_endpoint_auth_method": "private_key_jwt"
19745}19751}
19746```19752```
19747 19753
1974819754The same field name has different perspectives in the two documents: in authorization server metadata, it lists the methods your token endpoint accepts; in ChatGPT's CIMD document, it lists the methods ChatGPT can use. The `client_id` URL is stable and does not use query parameters to select a method-specific document. At runtime, ChatGPT compares both lists and prefers the stronger `private_key_jwt` method when your authorization server supports it; otherwise, it uses `none`.The plural field has different perspectives in the two documents:
19755authorization server metadata lists the methods your token endpoint accepts,
19756while ChatGPT's CIMD document lists the methods ChatGPT can use. ChatGPT
19757selects a method from the intersection of those sets. When the singular legacy
19758preference is in the intersection, ChatGPT uses it for compatibility with
19759authorization servers that still treat the singular field as binding.
19760Otherwise, ChatGPT can use another method in the intersection.
19761
19762Authorization servers that read the plural CIMD field should accept any method
19763in the intersection unless local security policy disallows that method for the
19764client. They must reject methods outside the intersection. The `client_id` URL
19765stays stable and does not use query parameters to select a method-specific
19766document.
19749 19767
19750The supported methods are:19768The supported methods are:
19751 19769