gpt4 book ai didi

oauth - 如何将授权委托(delegate)给外部 Auth 2.0 服务

转载 作者:行者123 更新时间:2023-12-04 23:14:36 25 4
gpt4 key购买 nike

我正在开发一项服务,该服务提供支持 OAuth 2.0 的不同服务的智能(希望)集成。 .我们工具的重点是改进团队工作流程,因此我们将 Slack , GitHub , Asana (问题跟踪器),Cezanne (人力资源工具)等

我们有可与所有这些工具一起使用的 ui 和后端(用户已获得所有这些工具的授权,因此我需要访问和刷新 token )。我们需要能够根据人在特定工具中的角色隐藏用户界面的不同部分。让我们拿GitHub举个例子。用户可以是存储库所有者、贡献者、公司所有者(对于企业帐户)等,因此这些用户可能需要根据他们的权限使用不同的用户界面。

最初我对自己实现授权犹豫不决(另一个自定义授权系统是这个世界最不需要的东西),我想利用其他服务的授权机制并围绕它们创建一个轻量级包装器。起初这似乎是一个合理的想法,但我不知道如何实现它,谷歌也没有提供有值(value)的建议,这意味着:99.99% 我正在尝试做一些愚蠢的事情,00.01% 我正在尝试做罕见/创新的东西。

我希望利用 OAuth 2.0但它似乎不支持我们需要的东西。最接近的是范围,但它看起来与我们的场景不太相关。

我现在唯一的想法是创建我们自己的授权系统并使用逆向工程集成其他服务。因此,我将使用 API 请求用户的 GitHub 帐户详细信息,并在我们的系统中适本地应用他的角色:存储库 A 的所有者、存储库 B 的贡献者、公司 C 的所有者等。我将不得不对每个角色的权限进行反向工程(即存储库所有者不能更改公司名称)。而且我们必须为每个服务保留用户角色:而不是典型的管理员/用户/经理/等。我们将得到:OwnerOfGitHubRepository(用于存储库 A)、ManagerOfAsanaTeam(用于团队 B)等。

如果OAuth 2.0 那就太棒了服务有一个端点,可以返回当前用户可用的权限。

我不是安全工程师,所以我可能会遗漏一些明显的东西。所以想在投资上述实现之前征求你们的意见。

最佳答案

“授权”一词用于两种不同的上下文。

在一种情况下,授权意味着 “谁有什么权限” .此授权的解决方案是 《身份管理》 .

在另一种情况下,授权意味着 “谁授予谁什么权限” .此授权的解决方案是 "OAuth" .

在某些情况下,您可能必须同时处理这两个授权。见 this questionthis answer详情。

关于oauth - 如何将授权委托(delegate)给外部 Auth 2.0 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46681363/

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