0

我正在尝试让 Swagger UI 成功授权给oidc-provider实例。

我在这里设置了一个最小(尽可能)的故障实例:https ://glitch.com/~copper-vise

它的作用是:

  • 在 /doc 上有 swagger UI 提供来自 swagger.yaml 文件的定义
  • 以最少的配置和开发交互运行 oidc 提供程序。

问题是我似乎无法让两者一起工作。看起来它可能是一个 Swagger UI 错误,但考虑到我缺乏 oidc 经验,它可能只是一个配置问题。

要尝试,请单击swagger 界面上的“授权”按钮,使用fooandbarclient_idand client_secret,至少检查 openid 范围并单击“授权”。此时,您应该会收到登录提示。输入您喜欢的任何内容并登录。此时,swagger UI 应该有一个令牌,但我从来没有做到这一点。

我得到的是一个invalid_client错误,似乎 oidc-provider 需要一个 Swagger UI 未提供的授权请求标头。“隐式”流程似乎也根本不起作用。据我所知,这是 oidc-provider 支持的两个流程(使用此配置?)。

我被卡住了,不知道从这里去哪里。文件中的 openapi securitySchemes 配置以及 oidc-provider 和客户端选项的正确组合似乎swagger.yaml应该可以运行。

4

1 回答 1

0

似乎 swagger 正在发送client_secret_post客户端身份验证,IdP 上的默认值为client_secret_basic. 如果您更改 IdP 上的客户端配置以匹配客户端实际使用的方案,它将起作用。

于 2019-02-19T10:42:19.770 回答