【问题标题】:How can OpenID Connect utilize userinfo for authorization?OpenID Connect 如何利用用户信息进行授权?
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-12-16
      • 2022-06-11
      • 2018-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-19
      • 2017-12-17
      • 2022-10-20
      • 2022-10-05
      相关资源
      最近更新 更多