如何实现像github的“生成细粒度的个人访问令牌”这样的功能?

问题描述 投票:0回答:1

Github 有一个处于测试阶段的新功能,称为 细粒度个人访问令牌,允许生成用于限制访问的 API 令牌。生成这样的密钥的方法是什么? (假设您必须为自己的应用程序实现它)。

当您生成新的细粒度令牌时,github 是否会生成具有您选择的范围及其有效日期的 JWT?我们获得的最终访问令牌不是编码的 Base64 jwt。看起来像

github_pat_<randomString>
。该令牌是否分配给授权后端中的 jwt?让这样的事情发挥作用的好方法是什么?

非常感谢。

github oauth-2.0 authorization personal-access-token
1个回答
0
投票

向互联网客户端颁发不透明的访问令牌是保护隐私的最佳实践。访问令牌用于发送到 API(资源服务器),互联网客户端不应该读取。

在 OAuth 2.0 中,API 所有者使用授权服务器 (AS) 向每个客户端颁发具有最低权限的访问令牌。 AS 允许发布范围(高级权限)和声明(细粒度权限)来访问令牌,以锁定它们。

AS 还应该配置为颁发不透明的访问令牌。然后 AS 存储不透明值的哈希值以及令牌数据。

不透明访问令牌通过“内省”来获取令牌数据。这涉及到将不透明令牌发送到 AS 的内省端点并接收回令牌数据。 内省通常在放置在 API 前面的 API 网关中完成。然后,网关使用相同的访问令牌缓存结果以供将来请求。然后,范围和声明被转发到目标 API,目标 API 使用它们来应用其业务授权。

© www.soinside.com 2019 - 2024. All rights reserved.