OAuth2 0 代币:数字时代的“士兵符号”

小夏 科技 更新 2024-03-01

在古代战争中,出兵的权力往往包含在一件事上——士兵护身符。 它是一种由当局精心制作并分成两半的令牌,只有当两半合并进行验证时,持有者才能获得指挥军队的合法权力。 这份实物文件保证了军事行动的安全和命令执行的有效性,是授权和身份验证的生动体现。

在现代网络世界中,OAuth 2 中体现了类似的授权机制协议中的 0 个令牌。

oauth2.0 代币就像古代战场上的护身符,是权力转移和身份验证的关键工具。 然而,在数字世界中,代币已经从实体形式演变为虚拟形式,但它所承载的授权使命和背后的安全逻辑不仅与古代代币一脉相承,而且在技术和规模上也得到了前所未有的扩展和深化。

OAuth 2 中的令牌在0协议的各种授权模式中,它被用作授权决策的结果和对服务的后续访问的身份。 服务端对令牌进行校验,确保请求者有权执行请求的操作,令牌本身携带的信息可以包括用户的身份、有效时间、授权范围等关键数据。

之前,我们对 OAuth2 进行了审查0 授权模式执行 **oauth2。0:授权模式已完全解析。

常见的 Token 类型包括访问令牌、刷新令牌和 idToken,每种令牌都有其特定的角色、差异和应用场景

访问令牌用于身份验证,因为访问令牌有一定的有效期,过期后不再有效,从而保证系统的安全性。 过期后,客户端通常需要通过刷新令牌获取新的访问令牌,因此访问令牌也称为“短令牌”。

格式要求

AccessToken 没有从 OAuth 协议级别限制固定格式,它可以是任何格式,但现在 JWT 在一般场景中已经习惯了。 不建议用户直接解析accesstoken来获取其中的信息(因为accesstoken的格式不是JWT的强制要求),需要根据实际的授权服务设计规范来确定。

应用场景

accesstoken 仅用于授权,可用于限制对受保护资源的访问。 例如用户界面权限管理、应用间接口权限管理,但在标准协议级别,accesstoken 不会用于身份验证(因为 accesstoken 代表更多的是“权限范围”,也就是保护 API)。

发出访问令牌后,表示的主体可以是“人”或“设备”。

建议的解决方案中的到期日期配置是什么?

出于安全原因,accesstoken 的有效期通常很短,但这也需要根据具体情况来决定。 例如:

在不建议用户参与的场景(如客户端模式)中,建议稍长一些。

在有用户参与的场景下:例如,建议授权码模式和密码模式稍微短一点,可以依靠refreshtoken实现登录状态的续订; 但是,建议配置稍长的配置,如隐式授权模式,因为该模式不支持刷新令牌,无法实现登录状态续订。

如果一个应用同时以客户端模式和用户模式使用,业务端需要考虑实际的业务场景和代币本身的应用场景。

当用户通过客户端应用程序访问其资源服务器上的受保护资源时,授权服务器不仅会向客户端返回一个访问令牌,还会生成一个刷新令牌,当“短令牌”访问令牌到期时,该令牌将发送到授权服务器请求新的访问令牌,而无需用户登录并再次授权, 从而改善用户体验并确保系统的安全性。因此,RefreshToken 也称为“长令牌”。

格式要求

OAuth 2 中的 RefreshToken0 协议中没有特定的格式,下面是一个 refreshtoken 的例子(注意实际的 refreshtoken 通常是加密或编码的,以确保其安全性,不一定是 JSON 格式)。

1eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9.eyjpc3mioijodhrwczovl2f1dgguawquy29tiiwicmvmcmvzaf90b2tlbl9pzci6ijeymzq1njc4otailcjlehaioje2mdk4ntgwmdasinnjb3blijoib3blbmlkihbyb2zpbgugzw1hawwilcjhdxrob3jpdhkioijbuelfq0xjru5uihbyaxzhdguifq.rkks7lp4lohydy_fvcokcfhs3ftinilwg8yrijeql5o
虽然上面的示例看起来像 JWT(JSON Web 令牌),但实际上 RefreshToken 可以是任何格式,例如,它可以只是一个长字符串,也可以是具有多个属性的自定义序列化对象。

尽管 OAuth 2 未使用 RefreshToken 的特定格式0 规范是严格限制的,但为了安全性和可管理性,大多数现代 OAuth 20 实现将选择使用 JWT 或至少以某种结构化格式存储 RefreshToken,并在存储和传输过程中保护它。 同时,Refreshtoken 还将实施到期日期控制、黑名单机制等安全策略。

应用场景

当用户通过身份验证时,服务器不仅会为客户端颁发短期访问令牌以访问受保护的资源,还会颁发长期存储的刷新令牌。 由于其有效期有限(例如,从几个小时到几天不等),访问令牌在到期后不能使用; 在这种情况下,客户端可以携带 refreshtoken 向认证服务器请求新的 accesstoken,整个过程不需要用户再次登录。 这种设计不仅确保了系统的安全性(因为即使访问令牌被泄露,攻击者也无法使用它来获取新的访问令牌或更新刷新令牌),并改善了用户体验(避免频繁登录)。 RefreshToken 通常用于支持单点登录 (SSO) 环境和 OAuth 20 等开放授权协议,确保用户可以在多个连接的应用程序之间保持长期登录状态,并根据需要动态更新访问权限。

建议的解决方案中的到期日期配置是什么?

RefreshToken 建议方案中的到期日期配置通常很长,以便在 AccessToken 过期后可以长时间保持用户的登录状态,而无需重新进行身份验证。 它的有效期可以是几天、几周甚至几个月,具体取决于系统的安全策略和用户体验需求。 此外,系统还应该设计相应的逻辑来撤销或更新 RefreshToken,并限制单个 RefreshToken 的次数或生命周期,以防止 RefreshToken 使用不当导致的潜在威胁。

在 OAuth 2 中在 0 协议框架下,idToken 是特定于 OpenID Connect (OIDC) 的身份令牌。 [注意:OpenID Connect 基于 OAuth 2 构建。0以上的一组认证层协议,主要用于解决用户身份识别和认证问题。 】

当用户通过 OAuth 2 时除了获取访问资源所需的 AccessToken 外,OpenID Connect 还允许客户端请求 IDTOKEN。 客户端接收并验证 idtoken 后,可以根据其内容确定用户的身份,并在必要时将此信息用于进一步的业务逻辑处理或用户界面呈现。

IdToken 通常采用 JSON Web 令牌 (JWT) 的格式,它由三部分组成:标头、有效负载和签名“建立联系。

JWT 标头包含令牌的元数据信息,例如加密算法;

JWT Payload 存储多个 JSON 编码的声明,这些声明提供有关经过身份验证的用户身份的信息;

JWT 签名通过对前两部分进行签名来确保令牌内容的完整性和可信度。

为了正确处理 idtoken,客户端需要根据 header 中的说明验证签名,并检查 payload 中每个声明的有效性,包括但不限于确认 token 没有过期、受众匹配自身以及 nonce 值的有效性。

应用场景

idToken 在 OpenID Connect 中的核心应用场景是用户认证和授权

用户身份验证:当用户登录到启用了 OpenID Connect 的应用程序时,服务器将返回一个 ID 令牌,其中包含用户的标识符和其他相关信息。 应用程序可以通过验证此令牌来确认用户的身份。

单点登录 (SSO):在多个应用程序之间实现单点登录时,用户只需在一个位置登录,即可自动登录所有其他应用程序。 在此方案中,每个应用程序都会收到一个 ID 令牌,其中包含用户的标识符和其他相关信息。

用户信息获取:idtoken除了用户的身份信息外,还可以包含用户的其他信息,如用户名、邮箱地址、**号码等。 应用程序可以通过解析 ID 令牌来获取此信息,而不必直接从数据库或其他位置获取它。

安全传输:由于ID令牌是安全令牌,因此可用于保护敏感信息的安全传输。 例如,当应用程序需要将用户信息发送到服务器时,它可以将该信息放在 ID 令牌中并将其发送到服务器,这样就不必以明文形式传输。

推荐解决方案中的有效期配置是什么?

idToken 推荐的配置有效期通常较短,以降低安全风险,同时可以与 Refresh Token 一起使用,实现自动续费。 具体有效期根据应用的安全要求和用户体验进行调整,旨在保证用户会话的连续性,同时控制身份凭证滥用的风险。 过期的令牌通过服务端逻辑进行监控和处理,并根据业务规则实施刷新策略,同时兼顾安全性和便利性。

在当今信息流量大的网络世界中,OAuth 20的代币机制无疑是数字社会中至关重要的桥梁。 AccessToken、RefreshToken等Token机制作为坚实的安全屏障,不仅保护了用户个人数据的隐私,还为服务之间的交互提供了一种安全、灵活、便捷的方式。 有了这个现代版本的护身符,用户可以精确地管理对其资源的访问,并确保每次授权都基于证据。

相似文章

    企业数字化 2 0 是 DT

    企业数字化 或数字化转型的第二阶段 由数据和云计算驱动。以下是每个功能的详细说明 .数据 在数字化转型的第二阶段,数据被视为企业的重要资产和决策依据。通过收集 分析和利用数据,企业可以更深入地了解市场需求 客户行为和业务运营,从而做出更明智的决策。.云计算 云计算为企业提供弹性和可扩展的IT资源,企...

    量化飘借力数字经济新增长,荣获2024年前锋奖工业数字技术30强

    近年来,以人工智能为代表的数字技术正在掀起全球科技的新浪潮,新一代数字技术将赋能千行百业。近日,在亿邦工业互联网年会尖峰之夜颁奖晚宴上,在余位工业互联网企业决策者 投资人及行业专业人士的见证下,工业互联网前锋奖正式揭晓。本届千峰奖以 谁在重构产业链 为主题,将企业分为数字链 工业数字技术 数智品牌三...

    2024数字城市建设展览会(2024数字城市建设交流会)。

    为全球数字城市树立新标杆 十四五规划纲要 提出 加快数字化发展,建设数字中国 的思路,支撑智慧城市发展项目规划。规范和促进智慧城市健康发展,要打造创新 住房和城乡建设部印发 国家智慧城市试点暂行管理办法 指出建设智慧城市是推动创新驱动发展 推进新型城镇化 全面建成小康社会的重要举措。随着智慧城市建设...

    加速数字化转型,天玑科技在2023智能服务峰会上斩获三项大奖

    近日,由中国IT服务平台主办的智能服务创新论坛在北京举行。天玑科技在年度智能服务优秀企业评选中荣获 年度数据中心运维服务优秀企业 和 智能服务数字化应用优秀案例 奖项,并再次入选 智能运维百强 天玑 一站式 IT智能运维以IT服务交付外包为核心,通过运维支撑治理 IT架构治理 服务能力治理 运维效益...

    画家李婵宇 2024年中央数字书画频道首件拍卖作品

    艺术概论 李婵宇,中国美术家协会会员,中国北宗山水画研究会副会长兼秘书长,抖音认证画家,北京西宁画院院长。年月,作品 秋韵 入选荣宝斋周年,为慈善拍卖设立 荣宝斋文化艺术公益 年月,中央电视台书画频道对李婵宇的山水画艺术进行了专题报道。年月,多件作品入选中央电视台书画频道 迎接中国共产党二十大 墨香...