gpt4 book ai didi

asp.net - OpenIDConnect 响应类型混淆

转载 作者:行者123 更新时间:2023-12-04 00:09:41 26 4
gpt4 key购买 nike

在过去的几天里,我一直在阅读有关 OAuth2 和 OpenIDConnect 的所有规范,并使用 Thinktecture Identity Server 实现了一个测试客户端。我还学习了几门复数类(class),我认为了解它的主要要点。但是,我仍然对响应类型感到非常困惑。

OpenIDConnect 规范指定混合流响应类型是“code”、“id_token”和“token”的组合。我了解“id_token”允许我们最初访问基本的 id 信息。

我也理解代码”是指授权代码,“ token ”是指访问 token ,将“代码”与其他两个中的一个或两个组合触发流程,但我的理解是您将授权代码交换为访问 token 授权流程,而隐式流程隐式提供访问代码?

有人能解决我的困惑吗?

最佳答案

您所做的以下陈述是正确的:

  • code指授权码
  • token指访问 token 或 ( access_token )
  • 在授权码流程中,切换 code对于 access_token

  • 但是您的部分困惑可能源于术语混淆:
  • 术语授权流程并不完全正确;它的正式名称是授权码流
  • 术语访问代码不存在
  • 隐式流没有授权代码(也没有访问代码),实际上根本不涉及允许客户端从 token 端点获取 token 的凭证(或授权),因此它的名称是

  • 正如@juanifioren 指出的,混合流结合了以下几点:
  • code id_token flow 会得到一个 codeid_token直接在身份验证响应中,但您将使用 code获得 access_token来自 token 端点
  • code token flow 会得到一个 codeaccess_token直接在身份验证响应中,但您将使用 code获得 id_token可能还有另一个 access_token在来自 token 端点的后端
  • code id_token token flow 会得到一个 code , access_token和一个 id_token直接在身份验证响应中 您可以使用 code在后端获取 另一个 access_token来自 token 端点

  • 获取 access_token从 token 端点获取它不同于从授权端点获取它,因为 secret 客户端向 token 端点(而不是授权端点)验证自己。因此 access_token对于客户端的 secret 部分,可能有更多的权限和或更长的生命周期。

    另请参阅规范邮件列表上有关此主题的简短主题: http://lists.openid.net/pipermail/openid-specs-ab/Week-of-Mon-20150209/005229.html

    关于asp.net - OpenIDConnect 响应类型混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29275477/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com