SAML 2.0 验证模块
SAML 2.0 身份验证模块允许您将 Hub 配置为 SAML 服务提供程序 (SAML SP)。 SAML 支持跨多个域的单点登录 (SSO)。
当您在 Hub 中启用 SAML 2.0 身份验证模块:
您的用户使用由指定第三方身份提供商 (SAML IdP) 管理的凭据登录 Hub。
您的 Hub 用户需要记住的账户和密码更少。
在已连接服务中有账户的新用户可以在 Hub 中创建自己的账户。
Hub 也可以设置为 SAML IdP。 此处未描述身份提供商设置的说明。 要了解如何将 Hub 用作 SAML IdP,请参阅 SAML 2.0。
IdP-为 SAML 启动 SSO
SAML 2.0 身份验证模块支持服务提供商 (SP) 和身份提供商 (IdP) 启动的单点登录 (SSO)。 登录请求基于用户如何登录到 Hub。
如果用户通过外部登录门户或访问管理提供商(例如 OneLogin)登录,则请求由 IdP 发起。
如果用户在 Hub 登录页面点击 IdP 按钮进行登录,则 Hub 作为 SP 发起请求。
为支持此行为,您的 SAML IdP 的 RelayState 参数可以为空,或为与服务主页 URL 主机名相同的主机名的 URL。 如果您在 IdP 配置中为此参数设置了其他值,重定向到内部 Hub 服务时会出现 Can't restore state 错误。
添加 SAML 2.0 身份验证模块
要向您的 Hub 安装添加 SAML 2.0 身份验证模块,请按照以下说明操作。 完成后,用户就可以使用已连接 SAML 身份提供商中管理的账户登录 Hub。
添加 SAML 2.0 身份验证模块:
在您计划用作 IDE Services Cloud 的 SAML 身份提供商的服务中,获取其作为 IdP 的参数。
如果 IdP 服务未提供其证书的指纹,请使用 SHA256 进行生成。 例如,您可以使用 SAML Tool
在 IDE Services Cloud 中,打开 页面。
点击 New module (新模块) 按钮。
在 Select an identity provider (选择身份提供商) 对话框中,从列表中选择 SAML 2.0。

在对话框中,指定 IdP 服务的参数,然后点击 Create (创建) 按钮。
SAML 2.0 身份验证模块已创建。

在页面的 Attributes (属性) 部分为用户账户提供 SAML 属性名称,以配置身份验证模块。
完成设置:
配置身份验证模块的可选设置。 如需详细信息,请参阅 其他设置。
点击 Save (保存) 按钮以应用设置。
点击 Enable (启用) 按钮。
SAML 2.0 身份验证模块已启用。
存储在 Button image (按钮图像) 设置中的图标会添加至登录对话框窗口。 用户可点击该图标使用自己的 SAML 凭据登录 Hub。
常规设置
页面的第一区域显示用于标识身份验证模块并管理 SAML 服务连接的设置。
设置 | 描述 |
|---|---|
类型 | 显示已启用用于 Hub 认证的服务类型。 Built-in Authorization (内置授权) 表示该模块为 Hub 的一部分,无需单独安装。 |
名称 | 存储身份验证模块的名称。 使用此设置区分此身份验证模块与 Auth Modules (身份验证模块) 列表中的其他模块。 |
按钮图像 | 显示用于按钮的图像,用户点击该按钮即可用已连接授权服务中的账户登录 Hub。 您可以上传 JPG、GIF 或 PNG 文件。 图像会自动调整为 48 x 48 像素。 |
SAML SSO URL | Hub 重定向到外部身份提供商所使用的 URL。 Hub 仅支持 HTTP-redirect 绑定进行登录。 |
IdP 实体 ID | 外部身份提供商的实体 ID。 |
证书指纹 | 身份提供商 SAML 证书的 SHA-256 指纹。 使用身份提供商 SAML XML 元数据生成指纹。 |
SP 实体 ID | 标识 Hub 作为服务提供商的 URL。 |
SSL 密钥 | 选择可用于向身份验证服务验证您的 Hub 安装身份的 SSL 密钥。 启用后,Hub 向身份提供商发送的所有请求都将使用相应 SSL 证书进行签名。 此列表仅显示已导入到 Hub 的密钥库。 有关详情,请参阅 SSL 密钥。 |
ACS URL | Hub 作为服务提供商使用的断言消费服务 URL。 |
SP 元数据 | Hub 用于向外部身份提供商提供元数据的 URL。 |
联系用户 | 负责 SAML 2.0 服务提供商配置的用户。 该用户账户关联的邮箱地址需在 Hub 中验证。 |
属性映射设置
页面的 Attributes (属性) 部分设置可将 SAML 服务中的用户账户属性映射到 Hub 账户中存储的字段。
选项 | 描述 |
|---|---|
用户名 | 存储用户名的 SAML 属性名称。 |
电子邮箱 | 存储邮件地址的 SAML 属性名称。 |
名 | 存储用户名的 SAML 属性名称。 |
姓 | 存储用户姓氏的 SAML 属性名称。 |
全名 | 用于存储用户全名的 SAML 属性的名称。 |
分组 | 映射到已连接授权服务中存储组成员分配的属性。 指定该值后,您可以将授权服务中的组成员关系与 Hub 中的相应组进行映射和同步。 有关详细信息,请参阅 群组映射。 |
其他设置
以下选项位于页面底部。 使用这些设置管理 Hub 账户创建和组成员,并降低空闲连接消耗的处理资源损耗。
选项 | 描述 |
|---|---|
用户创建 | 启用后,未注册用户使用已连接授权服务中的账户登录时将创建 Hub 账户。Hub 使用邮箱地址判断用户是否存在账户。 Hub 使用邮箱地址判断用户是否已存在账户。 |
自动验证电子邮件 | 当身份验证服务未返回此属性值时,用于确定 Hub 如何设置邮箱地址验证状态。 |
自动加入组 | 当用户使用已连接授权服务中的账户登录时,将其添加到某一组。 您可以选择一个或多个组。 新用户自动加入组后,会继承该组所有分配的权限。 建议您至少将用户添加到一个组中。 否则,新用户只能获得当前分配给 All Users (所有用户) 组的权限。 |
连接超时 | 设置与授权服务建立连接的等待时间。 默认设置为 5000 毫秒(5 秒)。 |
读取超时 | 设置从授权服务读取并获取用户资料数据的等待时间。 默认设置为 5000 毫秒(5 秒)。 |
审核 | 链接到 Hub 中的 Audit Events (审核事件) 页面。 在此可以查看对此身份验证模块所做的更改列表。 |
群组映射
在 Group Mappings (群组映射) 选项卡上,您可以将 SAML 服务中的现有组映射到 Hub 中的组。

如果要将 SAML 服务中的组映射到 Hub 组,需在该身份验证模块的 Attributes (属性) 设置中指定存储 SAML 组成员的 Groups (分组) 属性。
配置组映射后,用户使用 SAML 服务管理的账户登录时,Hub 会检查其组成员身份。 对于从 SAML 服务映射到 Hub 组的每个组,Hub 执行以下操作:
属于映射 SAML 组但不属于映射 Hub 组的用户,将被添加至 Hub 组。
不属于映射 SAML 组而属于映射 Hub 组的用户,将从 Hub 组中移除。
只有当用户使用 SAML 服务账户登录时,授权服务中的组成员更改才会在 Hub 中生效。
您可以将 SAML 服务中的多个组映射到 Hub 中的一个目标组。 不能将 SAML 服务中的组映射到多个 Hub 组。
将 SAML 服务中的组映射到 Hub 中的组:
SCIM 预置
SCIM(跨域身份管理系统)自动实现用户账户和组的预置和取消预置,确保您的身份提供商和应用保持同步。 这样可减少手动账户管理,在用户离职时及时移除其访问权限,提高安全性,并确保各系统中的用户数据准确且最新。
Hub 支持 SCIM 2.0,可在您的 SAML SSO 设置下实现用户和组的自动预置。 配置后,SAML 身份验证模块允许用户登录 Hub,而 SCIM 预置可保持 Hub 账户与身份提供商同步。
Hub 默认支持 SCIM 2.0。 要启用 SCIM 预置,请在 IdP 的 SCIM 预置设置中存储以下信息:
您的 Hub 安装的 SCIM endpoint URL (SCIM 端点 URL)。 此端点为:
<hub-base-url>/api/rest/scim2要查找 Hub 站点的基础 URL,请参考 Hub 服务的 Settings (设置) 标签页下 Services (服务) 页面。 如果 Base URLs (基本 URL) 设置为空,请使用 Home URL (主页 URL)。 如需更多信息,请参阅 https://www.jetbrains.com.cn/help/hub/configuring-service-settings.html#ServiceSettings。
用于认证的永久令牌形式的凭证。 要了解如何为您的 Hub 账户生成永久令牌,请参阅 https://www.jetbrains.com.cn/help/hub/manage-permanent-tokens.html
操作
以下操作在头部可用:
操作 | 描述 |
|---|---|
设为默认 | 将该身份验证模块指定为您安装的默认模块。任一时刻只能将一个身份验证模块设置为默认。如果另一个模块当前被设为默认,则该状态将被清除。 任一时刻只能将一个身份验证模块设置为默认。 如果另一个模块当前被设为默认,则该状态将被清除。 仅当当前身份验证模块未被指定为默认时才显示此选项。 |
清除默认 | 移除该身份验证模块作为您安装的默认模块。 如果没有可用的身份验证模块被指定为默认,未认证用户将始终被引导到 Hub 登录页面。 仅当当前身份验证模块被指定为默认时才显示此选项。 |
禁用模块 | 禁用该身份验证模块。 仅当身份验证模块当前启用时才显示此选项。 |
启用模块 | 启用该身份验证模块。 仅当身份验证模块当前被禁用时才显示此选项。 |
删除模块 | 从 Hub 中移除该身份验证模块。 仅在您已经配置了其他允许用户登录 Hub 的身份验证模块时使用。 |
示例配置
以下示例配置展示了如何使用 SAML 2.0 身份验证模块支持不同的用户管理场景。
Okta 作为 Hub 的 SAML 身份提供商
由于在两个应用的设置过程中存在"URL 循环",因此在 Hub 中将 Okta 配置为 SAML IdP 需要一个非直接的流程。 在 Hub 中设置身份验证模块需要 IdP 的唯一 URL,而在 Okta 中创建 IdP URL 需要 SAML SP(Hub)的唯一 URL。 您必须在 Okta 中创建一个带有虚假 URL 的应用,以便 YouTrack 生成 IdP URL,然后在 Hub 中创建身份验证模块以生成可在 Okta 应用中使用的 SP URL。
Okta 支持两种协议来处理联合单点登录,二者均受 Hub 的身份验证支持。
此处描述的设置使用 SAML 协议。 该模块的设置已经为与各种 SAML 提供商的通用连接进行了预配置。 需要针对 Okta 的 SAML 身份验证进行额外配置。
Okta 身份验证模块 支持 OpenID Connect(OIDC)协议。 该模块的设置已预配置为支持与 Okta 服务的直接连接。 使用该模块,您需要在 Okta 中将 Hub 注册为客户端应用,其余设置相对易于配置。
您选择协议主要取决于用例,但对于新集成,一般推荐使用 OIDC。
将 Okta 用作 IDE Services Cloud 的 IdP:
在 Okta 中,为 IDE Services Cloud 服务创建新应用程序。 对于 IDE Services Cloud,可使用任意 URL 作为 SP。 稍后您需要对其进行修正。 请参阅 设置 SAML 应用的 Okta 文档。
创建该应用程序时,点击 View Setup Instructions (查看设置说明) 按钮以打开包含您 Okta IdP 参数的页面:

下载您的 Okta IdP 证书。
为 Okta 证书生成 SHA256 指纹。 例如,您可以使用 SAML Developer Tools。
在 IDE Services Cloud 中,打开 页面。
点击 New module (新模块) 按钮,然后在下拉列表中选择 SAML2.0。
New SAML 2.0 Auth Module (新 SAML 2.0 验证模块) 对话框将打开。
在显示的对话框中,输入您的 Okta IdP 参数,然后点击 Create (创建) 按钮。

配置新模块:设置 SAML 属性。

切换回 Okta。 编辑 Hub 应用,保存在创建身份验证模块时生成的 URL。 Okta 中的设置应按以下方式配置:
设置
描述
单点登录 URL
在 Hub 的身份验证模块中输入 ACS URL。
将此作为 recipient 和 destination URL 使用
启用此选项。
Audience URI
在 Hub 的身份验证模块中输入 SP entity ID (SP 实体 ID)。
将 Hub 应用分配给应能够使用 Okta 凭据登录 Hub 的组和用户。
就是这样。 现在用户可以使用他们的 Okta 凭据登录 Hub 及关联服务。
Hub 作为另一个 Hub 服务的 SAML 身份提供商
如果您有两个 Hub 服务,可将其中一个作为 SAML 身份提供商,另一个作为服务提供商使用。
在用作 SAML IdP 的 IDE Services Cloud 安装中,打开 页面。

关于 Hub 作为 SAML 2.0 身份提供商的详细信息,请参阅 SAML 2.0 身份提供商参数。
在用作 SAML 服务提供商的 Hub 安装中,打开 Auth Modules (验证模块) 页面。
点击 New module (新模块) 按钮,然后选择 SAML2.0。
New SAML 2.0 Auth Module (新 SAML 2.0 验证模块) 对话框将打开。
在对话框中,输入您用作 IdP 的 Hub 服务相关参数:

点击 Create (创建) 按钮。
已创建新模块。 您将被导航到该新模块的设置页面:

配置 SAML 属性:

在作为 IdP 使用的 Hub 服务中,从 Access Management (权限管理) 部分的 Administration (行政) 菜单打开 SAML 2.0 页面,选择 Registered Service Providers (注册服务提供商) 选项卡,然后点击 New service provider (新服务提供者) 按钮。
将第二个 Hub 服务注册为 SAML 服务提供商:

要注册服务提供商,请输入当前在 SAML 2.0 身份验证模块设置中存储的相同值。 更多详情请参阅 注册服务提供商。
全部设置完毕! 现在您的用户可以使用作为 SAML IdP 的 Hub 服务的凭据登录 Hub SP。

