【发布时间】:2019-04-03 02:09:27
【问题描述】:
我正在使用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 标准的股票框,配置基本上是教科书example。
我的转折是Require authz。使用 OAuth2 远程验证时,openid-connect 似乎不会查找远程用户的用户信息,它只是复制从 /introspect 端点获取的所有属性并尝试匹配 Require 对它。
我的问题是:如何让 openid-connect 在拥有远程用户后查找相应的用户信息(通过调用现有的/userinfo 端点)?
【问题讨论】:
标签: openid-connect remote-validation mod-auth-openidc