GitHub通用OAuth实现| Bit Bucket | Git Lab | Azure DevOps



我正在构建一个web应用程序,用户必须提供我的web应用程序访问他们在GitHub| Bit bucket| Git Lab |任何其他代码托管平台中的存储库。

我通过OAuth2实现了它,为此我必须分别在所有平台上创建客户端应用程序。
最初它的作用域仅为GitHub | Bit Bucket,但现在我希望我的web应用程序也支持所有其他主要平台。

所以我目前的实现需要我为所有其他平台创建客户端应用程序,这是一个忙乱的,因为我们也想支持本地版本控制系统。

是否有一种安全通用的方式来授权给版本控制系统?

一个解决方案是用户直接提供他们的个人访问令牌(加密)给我的web应用程序,这样我的应用程序可以保存这些PAT,并在将来使用它们来提取存储库。
但我想知道这是一个足够安全或标准的方法。如果不是,那么解决这个问题的合适方法是什么呢?

您可能需要使用Oauth2提供程序,如:

  • dexidp/dex,一个使用OpenID Connect驱动其他应用程序认证的身份服务。
    Dex通过"连接器"充当通往其他身份提供者的门户,这些连接器支持您的目标

  • casdoor,一个身份和访问管理(IAM)/单点登录(SSO)平台,web UI支持OAuth 2.0,包括您的一些目标。

Oauth2不是唯一的选项,如SmartGit

所示

经过一番反思,我意识到我实际上已经有一段时间没有SmartGit和Azure DevOps的身份验证问题了,所以我花了一些时间进行实验,以弄清楚SmartGit是如何对我在Azure DevOps中的仓库进行身份验证的。

我最终确定它通过Git凭证管理器使用个人访问令牌。
所以SmartGit对pat的显式支持可能并不是一个关键特性。当您安装Git(至少在Windows上)时,您也可以选择安装Git Credential Manager。
只要你这样做,你就会一帆风顺。

相关内容

  • 没有找到相关文章