Integrate your server with GitLab.com
- Tier: Free, Premium, Ultimate
- Offering: GitLab Self-Managed
从 GitLab.com 导入项目并使用您的 GitLab.com 账户登录到您的 GitLab 实例。
要启用 GitLab.com OmniAuth 提供程序,您必须在 GitLab.com 上注册您的应用程序。 GitLab.com 会为您生成一个应用程序 ID 和密钥。
-
登录 GitLab.com。
-
在左侧边栏中,选择您的头像。
-
选择 编辑个人资料。
-
在左侧边栏中,选择 应用程序。
-
为 添加新应用程序 提供所需详细信息。
-
名称:可以是任何内容。考虑使用类似
<组织名称> 的 GitLab或<您的姓名> 的 GitLab或其他描述性名称。 -
重定向 URI:
# 您也可以使用非 SSL URL,但建议使用 SSL URL。 https://your-gitlab.example.com/import/gitlab/callback https://your-gitlab.example.com/users/auth/gitlab/callback
第一个链接用于导入器,第二个用于身份验证。
如果您:
- 计划使用导入器,可以保持范围不变。
- 只想将此应用程序用于身份验证,我们建议使用更小的范围集。
read_user就足够了。
-
-
选择 保存应用程序。
-
您现在应该会看到 应用程序 ID 和 密钥。继续配置时请保持此页面打开。
-
在您的 GitLab 服务器上,打开配置文件。
对于 Linux 包安装:
sudo editor /etc/gitlab/gitlab.rb对于自编译安装:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml -
配置 通用设置 以将
gitlab添加为单点登录提供程序。这为没有现有 GitLab 账户的用户启用即时账户配置。 -
添加提供程序配置:
针对 GitLab.com 进行身份验证的 Linux 包安装:
gitlab_rails['omniauth_providers'] = [ { name: "gitlab", # label: "提供程序名称", # 登录按钮的可选标签,默认为 "GitLab.com" app_id: "YOUR_APP_ID", app_secret: "YOUR_APP_SECRET", args: { scope: "read_user" } # 可选:默认为应用程序的范围 } ]或者,针对不同 GitLab 实例进行身份验证的 Linux 包安装:
gitlab_rails['omniauth_providers'] = [ { name: "gitlab", label: "提供程序名称", # 登录按钮的可选标签,默认为 "GitLab.com" app_id: "YOUR_APP_ID", app_secret: "YOUR_APP_SECRET", args: { scope: "read_user", # 可选:默认为应用程序的范围 client_options: { site: "https://gitlab.example.com" } } } ]针对 GitLab.com 进行身份验证的自编译安装:
- { name: 'gitlab', # label: '提供程序名称', # 登录按钮的可选标签,默认为 "GitLab.com" app_id: 'YOUR_APP_ID', app_secret: 'YOUR_APP_SECRET',或者,针对不同 GitLab 实例进行身份验证的自编译安装:
- { name: 'gitlab', label: '提供程序名称', # 登录按钮的可选标签,默认为 "GitLab.com" app_id: 'YOUR_APP_ID', app_secret: 'YOUR_APP_SECRET', args: { "client_options": { "site": 'https://gitlab.example.com' } }在 GitLab 15.1 及更早版本中,
site参数需要/api/v4后缀。 我们建议您在升级到 GitLab 15.2 或更高版本后删除此后缀。 -
将
'YOUR_APP_ID'更改为 GitLab.com 应用程序页面的应用程序 ID。 -
将
'YOUR_APP_SECRET'更改为 GitLab.com 应用程序页面的密钥。 -
保存配置文件。
-
使用适当的方法实施这些更改:
- 对于 Linux 包安装,重新配置 GitLab。
- 对于自编译安装,重启 GitLab。
在登录页面上,现在应该有一个 GitLab.com 图标位于常规登录表单之后。选择该图标开始身份验证过程。 GitLab.com 会要求用户登录并授权 GitLab 应用程序。如果一切顺利,用户将被返回到您的 GitLab 实例并登录。
减少登录时的访问权限
如果您使用 GitLab 实例进行身份验证,当 OAuth 应用程序用于登录时,您可以减少访问权限。
任何 OAuth 应用程序都可以使用授权参数 gl_auth_type=login 来宣传应用程序的目的。如果应用程序配置为 api 或 read_api,则访问令牌会使用 read_user 发布用于登录,因为不需要更高权限。
GitLab OAuth 客户端配置为传递此参数,但其他应用程序也可以传递它。