我有一个Nodejs Webapp,其中有许多用户具有自定义登录过程。我希望gitlab接受该身份验证,而不是强制用户创建新应用。最好的方法是什么?
答案 0 :(得分:3)
我会申请OAuth 2.0单点登录(SSO)。您可以在下面找到here的架构图。如您所见,客户端被重定向为登录OAuth2提供程序以获取有效的身份验证令牌。必须为请求访问的应用程序配置OAuth2服务器,包括密码,客户端ID和回调URL。
您可以将GitLab CE配置为sign in with almost any OAuth2 provider。仅注意限制:
它只能用于单点登录,不会提供任何OAuth提供程序(导入项目或用户等)授予的任何其他访问权限
它仅支持授权授予流程(最常见于客户端服务器应用程序,例如GitLab)
它无法从多个URL中获取用户信息
未使用除JSON以外的其他用户信息格式进行测试
您还需要将Node js Web应用程序配置为OAuth2服务器。有npm availables和源代码here。
推荐
我将安装一些开源的Identity Management,以将用户管理与您的Web应用程序分开,提供与其他第三方的更好的集成,并忘记加密和其他需要在Web应用程序中保管的内容。例如,有多个选项,例如KeyCloak。
答案 1 :(得分:2)
您必须定义一个专用用户,并使用该用户的private_token登录将使用您的应用程序的所有用户。 限制意味着所有用户将拥有相同的权限....
另一种解决方案是在登录时使用用户的专用令牌。在这种情况下,将仅使用这些特定用户的权限。