模拟一个 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