IDE Services Cloud Help

OAuth 2.0 验证模块

OAuth 2.0 认证模块允许用户使用存储在外部授权服务中的凭据登录 Hub 及任何已连接的服务。 Hub 提供了预配置的身份验证模块支持 AmazonAzure AD 2.0Bitbucket CloudFacebookGitLabKeycloakMicrosoft LiveOktaPayPal

您可以使用通用 OAuth 2.0 身份验证模块,让用户用 Basecamp、Stack Exchange 和 Zendesk 等支持 OAuth 2.0 的第三方服务账户登录 Hub。

在 Hub 中启用 OAuth 2.0 身份验证模块时:

  • 您的用户可使用外部服务的凭据登录 Hub。

  • 您的 Hub 用户需要记住的账户和密码更少。

  • 在已连接服务中拥有账户的新用户可以在 Hub 中自行创建账户。

启用 OAuth 2.0 身份验证

要允许在外部授权服务中已有账户的用户登录 Hub,请启用 OAuth 2.0 身份验证模块。

此流程共分三步完成:

  1. 在 Hub 中生成重定向 URI。 创建身份验证模块时,Hub 会生成用于授权服务的重定向 URI。 此 URI 用于标识每次登录请求的来源。

  2. 在授权服务中生成客户端 ID 和密钥。 从 Hub 发送的每个登录请求都包含唯一标识符。 您在身份验证模块存储的 ID 和密钥告知授权服务每个登录请求是被授权的。

  3. 在 Hub 中启用身份验证模块。 当您生成了 Hub 用于与授权服务进行身份验证的信息后,将这些值复制到 Hub 中并启用该模块。

在 Hub 中生成重定向 URI

首先,创建 OAuth 2.0 身份验证模块。 执行此操作后,Hub 会生成用于授权服务的重定向 URI。

  1. Access Management (权限管理) 部分的 Administration (行政) 菜单中,选择 Auth Modules (验证模块)

  2. 点击 New module (新模块) 按钮。

    • Select an identity provider (选择身份提供商) 对话框将打开。

      选择身份提供商
  3. Select an identity provider (选择身份提供商) 对话框中,选择 OAuth 2.0

    • New OAuth 2.0 Module (新 OAuth 2.0 模块) 对话框将打开。

    新建 OAuth 2.0 模块对话框。
  4. 输入 Name (名称)Authorization URL (验证 URL) ,然后点击 Create (创建) 按钮。

    • Auth Modules (验证模块) 页面显示新建 OAuth 2.0 身份验证模块的设置。

    • Hub 会为您生成用于授权服务的重定向 URI。

    通用 OAuth 2.0 重定向 URI
  5. 如果您的浏览器支持该功能,可使用 Copy (COPY) 按钮将重定向 URI 复制到剪贴板。

更改 Hub 实例的基础 URL 时,请确保在授权服务中更新重定向 URI。 例如,更改代理设置后。

在授权服务中生成客户端 ID 和密钥

下一步是在授权服务中为 Hub 注册被授权的重定向 URI。 此过程因服务而异。 您可以参考任意预配置身份验证模块(如 AmazonAzure AD 2.0Bitbucket CloudFacebookGitLabMicrosoft LivePayPal )的设置说明。 其他第三方授权服务的配置步骤类似。

在 Hub 中启用身份验证模块

要完成设置,请将授权服务中的客户端 ID 和密钥存储到 OAuth 2.0 验证模块中。

  1. 从授权服务中复制客户端 ID,并粘贴到 Hub 的 Client ID (客户端 ID) 输入字段中。

  2. 从授权服务中复制客户端密钥,并粘贴到 Hub 的 Client secret (客户端密钥) 输入字段中。

  3. 为身份验证模块配置可选设置。 如需详细信息,请参阅 其他设置

  4. 点击 Enable module (启用模块) 按钮。

    • OAuth 2.0 身份验证模块已启用。

    • 存储在 Button image (按钮图像) 设置中的图标将添加到登录对话框。 用户可点击该图标,使用已连接授权服务的账户登录 Hub。

测试连接

要验证身份验证模块是否设置正确,请测试连接。

点击标题中的 Test login (测试登录) 按钮。 这将在新浏览器标签页中验证登录流程。

  • 如果身份验证模块设置正确,将显示成功信息。

  • 如果连接出现问题,身份验证服务会显示错误信息。 请根据错误页面中提供的信息排查问题。

设置

设置页面的第一部分显示身份验证模块的常规设置。 在此处,还可以找到用于在授权服务注册 Hub 的重定向 URI,以及存储在授权服务中生成的 Client ID (客户端 ID)Client Secret (客户端密钥) 的输入字段。

设置

描述

类型

显示为第三方身份验证在 Hub 中启用的授权服务类型。

名称

存储身份验证模块的名称。 使用此设置将该模块与 Auth Modules (验证模块) 列表中的其他身份验证模块区分开。 该名称也会显示在登录表单中的第三方服务图标提示中。

按钮图像

显示用于按钮的图像,用户可通过按钮使用已连接授权服务的账户登录 Hub。 您可以上传 JPG、GIF 或 PNG 文件。 图像会自动调整为 48 x 48 像素。

重定向 URI

显示用于在授权服务中注册 Hub 连接的已授权重定向 URI。

客户端 ID

存储授权服务用于验证登录请求的标识符。 配置 Web 应用的授权设置并输入已授权重定向 URI 时,您将在授权服务中生成此值。

客户端密钥

存储用于验证客户端 ID 的密钥或密码。 该值与客户端 ID 一起在授权服务中生成。

授权延期

保存用作扩展授权时身份验证模块的标识值。 如提供该值,Hub 将处理将由授权服务签发的访问令牌交换为允许访问 Hub 的令牌的请求。

要成功交换访问令牌,身份验证模块必须在第三方身份验证服务中获得授权并于 Hub 中启用。

要了解如何通过 Hub REST API 交换访问令牌,请参阅 扩展授权

授权服务端点

本节设置用于存储授权服务 OAuth 2.0 端点。 其他设置可定义请求范围并选择服务验证方式。

对于预配置的 OAuth 2.0 模块,所选授权服务使用的值会自动设置。

设置

描述

验证

存储 Hub 用于通过用户代理重定向从资源所有者获取授权的端点。

令牌

存储 Hub 用于将授权授予交换为访问令牌的端点。

用户数据

存储用于定位已认证用户资料数据的端点。

电子邮件

存储用于定位已认证用户邮箱的端点。仅当邮箱未存储在用户资料中时使用。 仅当邮箱未存储在用户资料中时使用。

头像

存储用于定位作为已认证用户头像使用的二进制文件的端点。仅当头像未直接存储在用户资料中时使用。 仅当头像未直接存储在用户资料中时使用。

字段映射

当授权服务返回用户资料响应对象时,所指定字段路径中的值会复制到 Hub 的用户资料中。 请使用以下设置,定义已认证用户配置文件数据定位端点,以及将授权服务中存储的字段映射到 Hub 用户账户。

对于预配置的 OAuth 2.0 模块,所选授权服务使用的值会自动设置。

  • 要指定嵌套对象字段的路径,请输入以斜杠字符(/ )分隔的一系列片段。

  • 要引用可能存储在多个位置的值,请使用"Elvis 运算符" (?:) 作为多个路径的分隔符。 启用该选项后,Hub 将使用指定字段中遇到的第一个非空值。

字段

描述

用户 ID

映射到存储要复制到 Hub 中 User ID (用户 ID) 属性的字段。

用户名

映射到存储要复制到 Hub 配置文件中 Username (用户名) 字段的字段。

此选项在 Hub 2023.1.15453 及更高版本中可用。

全名

映射到存储要复制到 Hub 配置文件中 Full name (全名) 字段的字段。

电子邮箱

映射到存储要复制到 Hub 配置文件中 Email (电子邮箱) 字段的字段。

电子邮件验证状态

映射到存储要复制到 Hub 已验证邮箱属性的字段。

头像

映射到存储用于 Hub 配置文件中 Avatar (头像) 的图像字段。

图像 URL 模式

生成被 ID 引用的头像图像 URL。 请使用 <picture-id> 占位符引用存储头像的字段。

分组

映射到已连接授权服务中存储组成员资格分配的属性。

指定该值后,您可以将授权服务中的组成员身份映射并同步到 Hub 中相应的组。 有关详细信息,请参阅 群组映射

其他设置

以下选项位于页面底部。 这些设置允许您定义请求作用域并选择服务验证方式。

本节的其他选项可用于管理 Hub 账户创建和组成员资格,并减少空闲连接造成的处理资源浪费。

选项

描述

范围

设置访问请求的作用域。 输入以空格分隔的作用域列表。

身份验证

决定认证信息如何传递给授权服务。

用户创建

允许尚未注册的用户使用已连接授权服务存储的账户登录时,在 Hub 中创建账户。Hub 使用邮箱地址以判断用户是否已有账户。 Hub 使用邮箱地址以判断用户是否已有账户。

自动验证电子邮件

决定当身份验证服务未返回邮箱已验证状态时,Hub 如何设置邮箱验证状态。

自动加入组

用户使用已连接授权服务账户登录时,添加其至某个组。您可以选择一个或多个组。新用户自动加入组后,将继承该组的所有权限。 您可以选择一个或多个组。 新用户自动加入组后,将继承该组的所有权限。

我们建议您将用户添加到至少一个组。 否则,新用户仅拥有当前分配给 All Users (所有用户) 组的权限。

连接超时

设置等待与授权服务建立连接的时间段。默认设置为 5000 毫秒(5 秒)。 默认设置为 5000 毫秒(5 秒)。

读取超时

设置等待从授权服务读取和获取用户个人资料数据的时间段。默认设置为 5000 毫秒(5 秒)。 默认设置为 5000 毫秒(5 秒)。

审核

链接到 Hub 中的 Audit Events (审核事件) 页面。 在那里,您可以查看应用于该身份验证模块的更改列表。

群组映射

Group Mappings (群组映射) 选项卡上,您可以将授权服务中的现有组映射到 Hub 中的组。

OAuth2 账户的组映射。

如果您希望将 OAuth 2.0 服务中的组映射到 Hub 组,您需要在该身份验证模块的 Attribute Mapping (属性映射) 配置部分中指定存储 OAuth 2.0 服务组成员资格的 Groups (分组) 属性。

配置组映射后,Hub 会在托管于目录服务的账户用户登录时检查其组成员资格。 Hub 会针对每个从 OAuth 2.0 服务映射到 Hub 组的组执行以下操作:

  • 属于已映射 OAuth 2.0 组但不属于已映射 Hub 组的用户会被添加到 Hub 组中。

  • 不属于已映射 OAuth 2.0 组但属于已映射 Hub 组的用户会从 Hub 组中移除。

仅当用户使用 OAuth 2.0 服务的账户登录时,授权服务中的组成员变更才会在 Hub 中生效。

您可以将多个 OAuth 2.0 组映射到 Hub 中的同一个目标组。 您不能将 OAuth 2.0 组映射到多个 Hub 组。

将 OAuth 2.0 授权服务中的组映射到 Hub 中的组:

  1. 打开您的 OAuth 2.0 验证模块。

  2. 选择 Group Mappings (群组映射) 选项卡。

  3. 点击 Add mapping (添加映射) 按钮。

    • Add Mapping (添加映射) 对话框将打开。

    添加组映射的对话框。
  4. OAuth group name (OAuth 组名) 字段中输入 OAuth 2.0 组的名称。

  5. Target group (目标组) 列表中选择一个组。

  6. 点击 Add (添加) 按钮。

    • 映射已添加到列表中。

操作

标题中可用以下操作:

操作

描述

设为默认

将该身份验证模块设为您的安装默认模块。任意时刻只能有一个身份验证模块被设为默认。如果其他模块当前为默认,状态将被清除。 任意时刻只能有一个身份验证模块被设为默认。 如果其他模块当前为默认,该状态将会被清除。

此选项仅在当前身份验证模块未被设为默认时显示。

清除默认

将该身份验证模块从您的安装默认值中移除。

如果未将任何可用身份验证模块设为默认,未认证用户将始终被重定向到 Hub 登录页面。

此选项仅在当前身份验证模块被设为默认时显示。

禁用模块

禁用该身份验证模块。

此选项仅在当前身份验证模块已启用时显示。

启用模块

启用该身份验证模块。

此选项仅在当前身份验证模块已禁用时显示。

测试登录

可让您测试与身份验证服务的连接。

删除模块

将该身份验证模块从 Hub 中移除。 仅当您已配置允许用户登录您 Hub 安装的其他身份验证模块时使用。

2026年 3月 16日