将极狐GitLab 配置为 OAuth 2.0 provider
本文档描述了如何将极狐GitLab 用作 OAuth 2.0 provider。
- OAuth 2 应用程序可以使用极狐GitLab UI(如下所述)创建和管理,也可以使用 Applications API 进行管理。
- 创建应用程序后,外部服务可以使用 OAuth 2 API 管理访问令牌。
- 要允许用户使用第三方 OAuth 2 provider 登录极狐GitLab,请参阅 OmniAuth 文档。
OAuth 简介
OAuth 2 代表资源所有者,向客户端应用程序提供对服务器资源的“安全委托访问”。OAuth 2 允许授权服务器在资源所有者或最终用户的批准下,向第三方客户端颁发访问令牌。
可以使用 OAuth 2:
- 允许用户使用他们的 JihuLab.com 账户登录您的应用程序。
“极狐GitLab 导入器”功能还使用 OAuth 2 授予对仓库的访问权限,而无需将用户凭据共享到您的 JihuLab.com 账户。
极狐GitLab 支持多种向实例添加新的 OAuth 2 应用程序的方法:
这些方法之间的唯一区别是权限级别。默认回调 URL 是 http://your-gitlab.example.com/users/auth/gitlab/callback
。
用户所有的应用程序
要为您的用户添加新的应用程序:
- 在右上角,选择您的头像。
- 选择 编辑个人资料。
- 在左侧边栏中,选择 应用程序。
- 输入已授权的应用程序中定义的名称、重定向 URI 和 OAuth 2 范围。重定向 URI 是用户在极狐GitLab 授权后发送到的 URL。
-
选择 保存应用。极狐GitLab 提供:
- 应用程序 ID 字段中的 OAuth 2 客户端 ID。
- OAuth 2 客户端密码,可访问于:
- 14.1 及更早版本的 Secret 字段中。
- 14.2 及更高版本中使用 Secret 字段上的 复制 按钮。
群组所有的应用程序
引入于 13.11 版本。
要为群组添加新的应用程序:
- 导航到所需的群组。
- 在左侧边栏中,选择 设置 > 应用程序。
- 输入已授权的应用程序中定义的名称、重定向 URI 和 OAuth 2 范围。重定向 URI 是用户在极狐GitLab 授权后发送到的 URL。
-
选择 保存应用。极狐GitLab 提供:
- 应用程序 ID 字段中的 OAuth 2 客户端 ID。
- OAuth 2 客户端密码,可访问于:
- 14.1 及更早版本的 Secret 字段中。
- 14.2 及更高版本中使用 Secret 字段上的 复制 按钮。
实例范围的应用程序
为您的极狐GitLab 实例创建应用程序:
- 在左侧边栏中,选择 搜索或转到。
- 选择 管理中心。
- 在左侧边栏中,选择 应用程序。
- 选择 新建应用程序。
在管理中心创建应用程序时,您可以将其标记为可信的。 此应用程序会自动跳过用户授权步骤。
访问令牌过期
- 引入于 14.3 版本,可以选择退出。
- 选择退出过期的访问令牌功能删除于 15.0 版本。
14.3 版本中弃用了选择退出过期访问令牌的功能,并在 15.0 中删除了该功能。必须更新所有现有集成,支持访问令牌刷新。
访问令牌在两小时后过期。使用访问令牌的集成必须至少每两个小时生成一次新令牌。
删除应用程序时,与该应用程序关联的所有授权和令牌也将被删除。
已授权的应用程序
您使用极狐GitLab 凭据授权的每个应用程序都显示在 设置 > 应用程序 下的已授权应用部分。
极狐GitLab OAuth 2 应用程序支持范围,允许给定任何应用程序可以执行的各种操作。下表描述了可用范围。
范围 | 描述 |
---|---|
api
| 授予对 API 的完整读/写访问权限,包括所有群组和项目、容器镜像库和软件包库。 |
read_user
| 通过 /user API 端点授予对经过身份验证的用户配置文件的只读访问权限,其中包括用户名、公共电子邮件和全名。还授予对 /users 下只读 API 端点的访问权限。 |
read_api
| 授予对 API 的读取权限,包括所有群组和项目、容器镜像库和软件包库。 |
read_repository
| 使用 Git-over-HTTP 或仓库文件 API 授予对私有项目仓库的只读访问权限。 |
write_repository
| 使用 Git-over-HTTP(不使用 API)授予对私有项目仓库的读写访问权限。 |
read_registry
| 授予对私有项目上的容器镜像库镜像的只读访问权限。 |
write_registry
| 授予对私有项目上的容器镜像库镜像的写访问权限。 |
sudo
| 当以管理员用户身份进行身份验证时,授予以系统中任何用户身份执行 API 操作的权限。 |
openid
| 授予使用 OpenID Connect 通过极狐GitLab 进行身份验证的权限。还授予对用户个人资料和群组成员资格的只读访问权限。 |
profile
| 授予使用 OpenID Connect 对用户配置文件数据的只读访问权限。 |
email
| 授予使用 OpenID Connect 对用户主电子邮件地址的只读访问权限。 |
您可以随时通过单击 撤销 来撤销任何访问权限。