0

我正在使用mod_auth_openidc来处理既没有身份验证也没有授权的 API。同一个端点也为 UI 提供服务,因此它具有交互和服务器到服务器的查询。这是模块的AuthType auth-openidc用途。因此该模块在 OAuth2 中充当资源服务器。

在配置这个时,我意识到我接受来自密码授权的访问令牌,所以我的所有用户都有分配给他们的角色,我们并没有真正在客户端 ID 上使用范围。所以,很自然,我想通过这样的角色限制对端点的访问:

<Location />
  AuthType auth-openidc
  OIDCOAuthIntrospectionEndpoint https://localhost/oauth2/introspect
  OIDCOAuthRemoteUserClaim sub
  OIDCOAuthClientID 1111
  OIDCOAuthClientSecret 2222
  Require claim roles:MYAPI_ACCESS
</Location>  

验证端点是一个符合RFC 7662标准的库存盒,配置基本上是教科书示例

我的转折是Requireauthz。使用 OAuth2 远程验证时,openid-connect 似乎不会查找远程用户的用户信息,它只是复制它从/introspect端点获取的所有属性并尝试将 Require 与它匹配。

我的问题/userinfo是:一旦拥有远程用户,我如何让 openid-connect 查找相应的用户信息(通过对现有端点的调用)?

4

1 回答 1

1

充当 OAuth 2.0 资源服务器时,您不能使模块调用用户信息端点。您可以做的是将相关声明映射到您的 Provider 中的访问令牌。

于 2019-04-03T06:51:22.767 回答