首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用节点-oidc-provider为userinfo端点和资源服务器调用发出访问令牌

如何使用节点-oidc-provider为userinfo端点和资源服务器调用发出访问令牌
EN

Stack Overflow用户
提问于 2022-10-08 17:15:35
回答 1查看 137关注 0票数 0

为什么节点-oidc提供者拒绝为/userinfo端点和api(资源服务器)调用发出单个令牌?

在oauth2和open id connect规范中,我都看不到授权服务器不应该为这两种使用发出访问令牌。这个答复还说,这不是不可能的:Can we request OAuth 2 scopes in OIDC?

根据节点-oidc-provider的文档:https://github.com/panva/node-oidc-provider/tree/main/docs#featuresuserinfo

启用userinfo端点。它的使用需要一个不透明的访问令牌,该令牌至少具有openid作用域,即,而没有资源服务器受众

我遗漏了一些东西,或者我可以通过api调用功能对用户进行身份验证并直接获得访问令牌吗?

我的情况是:我们有第三方移动应用程序、我们自己的授权服务器和一个api。因此,用户使用“连接我们的服务器”登录到移动应用程序中。鉴于上述情况,有必要

userinfo)

  • Force

  • 对用户进行身份验证(并让用户授权调用api (通过请求仅用于此api的访问令牌)

这需要两个不同的用户交互,这可能是不好的。

这是根据@下面的答复更新的信息。

根据你的建议,如果我错了,请纠正我:

  1. 解决方案1:使用资源参数调用授权请求,以获得具有资源服务器作用域的令牌。使用响应中的idToken来检索userinfo,而不需要对/userinfo进行特定的调用。

对吗?

  1. 解决方案2:启用refreshToken,并在没有资源范围的只有userinfo范围(openid、email等)的情况下触发授权请求。由于Op服务器应该返回访问令牌和刷新,所以我应该使用刷新令牌来获得具有资源范围的新访问令牌。

使用刷新令牌获取资源范围访问令牌可能会迫使最终用户将这个新范围授予客户端。因为,如前所述,我们没有在授权请求中包括资源范围。这是一种新的与最终用户的交互.对吧?

对此有什么解释吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-14 21:11:22

我在oauth2和open id连接规范中都没有看到授权服务器不应该为这两种使用发出访问令牌

虽然这是真的,但也没有语言说这是个好主意,但事实是,事实并非如此。

UserInfo端点只是另一个资源服务器,不可能为多个资源发出访问令牌(例如,使用resource参数的两个API)。这是我做出的一个选择,不允许资源服务器获取它们接收到的访问令牌,并使用userinfo端点,这不是它们打算使用的资源。

这需要两个不同的用户交互,这可能是不好的。

你不需要两个互动。首先,移动客户端可以从ID令牌获取userinfo返回的所有内容。第二,给定默认行为,如果客户端没有在令牌端点使用相应的资源参数,则仍然会发出userinfo令牌。我的建议是选择ID令牌路由,否则配置环境以发出刷新令牌,并让客户端应用程序通过这种方式从单个交互中获得两个访问令牌。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73999021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档