首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开放ID连接Auth代码流中的客户端应用程序到底是谁/什么?

开放ID连接Auth代码流中的客户端应用程序到底是谁/什么?
EN

Stack Overflow用户
提问于 2020-02-04 23:46:50
回答 1查看 70关注 0票数 1

从OpenID的角度和我所读过的所有问题/文章来看,这似乎是不言自明的--它是请求ID令牌的客户端应用程序。但是,当我试图在我们的体系结构中映射它为一个实际的“应用程序”时,我并不完全确定。

给予:

  • ID_Token的访问对象是针对Client_Application的
  • Access_Token的访问对象用于受保护的资源API
  • 我们有一个前端SPA,它有自己的后端web API (以后可能会被其他客户使用)。

所涉及的组成部分如下:

  1. 前端SPA (依赖方)
  2. 后端Web_API (受保护资源)
  3. OpenID提供者(OP)

如果我想在用户访问前端SPA时应用Auth代码流,前端SPA或Web_API会被视为Client_Application吗?在8月代码流中,Auth_Code与ID_Token的实际交换将发生在后端Web_API到OP的后端通道上。然而,它实际上是前端SPA最初要求的用户身份验证。ID_Token的受众应该是什么?是SPA的App_ID还是Web的App_ID?

感谢您对澄清的任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-05 06:42:15

当前的最佳实践要求SPA在PKCE (最佳做法草案)中使用授权代码流。因此,请考虑这一点,当使用OAuth与您的SPA。

关于你的疑问,这是你的客户和听众。

  • Client -您的SPA
  • ID令牌的受众-您的SPA
  • 访问令牌的受众-后端web

理由:

完成OAuth流并获取令牌的是您的SPA。正如我所说的,它必须遵循PKCE作为当前的引用(有足够的库来支持这一点)。因此,从授权服务器的角度来看,客户端就是您的SPA。

关于ID令牌,它打算由您的SPA使用。一旦验证了SPA,就对最终用户进行身份验证。所以它的目标受众是SPA。

SPA打算对后端使用访问令牌。一旦接收到API请求,它必须检查访问令牌受众包含针对自己的标识符(如果是JWT,声明包含后端标识符Once )。或者,如果令牌内省,包含标识符的resposne )。通常,您的授权服务器允许您注册这样的用户,并且您的授权请求可以具有预期的受众参数(例如:- Azure使用这种方法)。但这些都是实现的具体细节。

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

https://stackoverflow.com/questions/60067152

复制
相关文章

相似问题

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