模拟一个 OpenID Connect 发现文档
在 /.well-known/openid-configuration 上的一个 GET 模拟(mock),包含 issuer、authorization_endpoint、token_endpoint 和 jwks_uri。
OpenID Connect 客户端通过从 /.well-known/openid-configuration 获取发现文档并从中读取端点来进行引导。该模板提供此文档,因此您可以测试发现步骤 —— 以及您的客户端对其的处理 —— 而无需建立一个身份提供者(identity provider)。
代替第三方 API 端点。
响应负载
{"issuer":"{{mock.url}}","authorization_endpoint":"{{mock.url}}/authorize","token_endpoint":"{{mock.url}}/token","jwks_uri":"{{mock.url}}/.well-known/jwks.json","response_types_supported":["code"],"subject_types_supported":["public"],"id_token_signing_alg_values_supported":["RS256"]}
值得了解的字段
| 字段 | 含义 |
|---|---|
| issuer | 客户端用来与令牌的 iss 声明进行比较的发行者 URL;它必须与基础 URL 完全匹配。 |
| authorization_endpoint | 客户端发送用户去登录的地方。 |
| token_endpoint | 客户端用代码交换令牌的地方。 |
| jwks_uri | 客户端获取公钥的地方 —— 与 jwks-endpoint 模板配对。 |
创建模拟数据
curl -X POST https://quickmock.dev/api/mocks \
-H 'Content-Type: application/json' \
-d '{
"method": "GET",
"response_status": 200,
"content_type": "application/json",
"path_suffix": ".well-known/openid-configuration",
"response_body": "{\"issuer\":\"{{mock.url}}\",\"authorization_endpoint\":\"{{mock.url}}/authorize\",\"token_endpoint\":\"{{mock.url}}/token\",\"jwks_uri\":\"{{mock.url}}/.well-known/jwks.json\",\"response_types_supported\":[\"code\"],\"subject_types_supported\":[\"public\"],\"id_token_signing_alg_values_supported\":[\"RS256\"]}"
}'
调用它
curl https://quickmock.dev/m/<slug>/.well-known/openid-configuration
您将获得什么
GET /m/<slug>/.well-known/openid-configuration -> 200 an OIDC discovery document
every advertised endpoint resolves to this mock via the {{mock.url}} token
这与真实情况有何不同
此文档中的每个 URL 都通过 {{mock.url}} 令牌构建,因此在每次请求时,它都会解析为此模拟自身的地址 —— 但是这些端点后面并没有实现任何东西,因此客户端只能完成发现,不能进行下一步。编辑响应主体需要创建横幅中的 admin 令牌;有关其工作原理,请参见 /guide/manage-mocks-from-any-device。
来源
常见问题解答
- 使用之前我需要编辑任何内容吗?
- 不需要。文档中的每个 URL 都写作 {{mock.url}} 令牌,在每次请求时,它会扩展为此模拟自身的 https://quickmock.dev/m/<slug> 地址 —— 因此,该文档在您创建它时就是自洽的。只有当您希望端点指向其他地方时,您才需要编辑它。
- 为什么发行者(issuer)必须完全匹配?
- 客户端将此文档中的发行者与它们收到的令牌的 iss 声明(claim)进行比较,并拒绝不匹配的令牌。哪怕只是一个尾部斜杠也足以破坏它,这使得它成为一个有用且值得故意测试的点。
- 我可以对着它完成一个真实的登录流程吗?
- 不能。该文档声明了端点,但没有任何东西实现了它们。将它与用于令牌步骤的 OAuth2 令牌模板以及用于密钥发现的 JWKS 模板配对,以覆盖更多的流程。
准备好使用了吗?
与本指南非常搭配: 模拟 REST API 端点
相关模板
最后更新: 2026-10-17