单点登录

Version 23.4.8801


单点登录


知行之桥通过 OpenID 标准支持单点登录 (SSO)。实现 OpenID 的身份提供程序(如 Azure AD)可用作知行之桥的 SSO 平台。

概述

启用单点登录需要在应用程序的 系统设置 页面的 单点登录 选项卡下配置一组设置。下一节中将针对这些设置逐个进行解释。

配置 SSO 设置后,应为知行之桥中创建的用户提供联合标识(Federation ID)。该联合标识值将知行之桥用户名与身份提供者实体联系在一起。当知行之桥用户尝试登录应用程序时,它将被重定向到 SSO 平台,并要求必须在 SSO 平台中输入相应身份的凭据。

一旦配置了 SSO 并且知行之桥用户有一个联合标识值来将他们与身份提供者相关联后,任何进一步的 SSO 用户管理高级配置都应该在 SSO 平台本身中进行。

注意:知行之桥目前仅支持个人用户,不支持用户组。 如果 SSO 平台为一组用户提供访问权限,则必须将该组中的每个用户添加为 知行之桥Users 选项卡上的用户 设置页面以便登录。 每个用户应引用来自身份提供商的联合 ID(如下所述)。

SSO 设置

本节详细介绍了每个 SSO 设置及其在知行之桥中的含义。这些设置的详细信息可能取决于所使用的标识提供者,下一节中将提供 Azure AD 指南。

SSO URIs

  • 端口 Id 端口的静态、唯一标识符。
  • 端口类型 显示端口类型及其用途的描述。
  • 端口描述 一个可选字段,用于提供端口及其在流中的角色的自由格式描述。
  • 令牌接收者(Audience URIs) SSO 登录令牌的预期接收者。 这可确保 SSO 平台生成的令牌供知行之桥使用。 将此值设置为将知行之桥标识为 SSO 平台中可信应用程序的 URI(例如,SSO 平台为知行之桥生成的 Application ID)。 要容纳多个 URI,请提供一个以逗号分隔的列表。
  • 授权 URL 用户应通过身份提供商执行授权的 URL。 当 SSO 用户尝试登录知行之桥时,应用程序会将用户重定向到此 URL,用户可以在其中输入 SSO 平台的凭据。
  • 令牌 URL 可从身份提供商获取安全身份验证令牌的 URL。 用户通过 授权 URL 进行身份验证后,身份提供程序将重定向到此 URL,以根据用户输入的凭据生成令牌。
  • 注销 URL 指定知行之桥用户在注销应用程序后重定向到的位置。
  • 回调 URL 重定向 URI 在身份提供程序中配置(而不是知行之桥本身),以指示用户在针对身份提供程序执行身份验证后应返回到何处。
    知行之桥的回调 URL 具有以下结构:[base_arc_url]/src/ssoCallback.rst
    例如,如果知行之桥托管在 mydomain.com 的端口 8001 上,请使用以下重定向 URI:https://mydomain.com:8001/src/ssoCallback.rst

SSO 颁发者设置

  • 端口 Id 端口的静态、唯一标识符。
  • 端口类型 显示端口类型及其用途的描述。
  • 端口描述 一个可选字段,用于提供端口及其在流中的角色的自由格式描述。
  • 令牌颁发者证书 身份提供者用于签署 JWT 令牌的证书的公共部分。 这有助于确保仅接受预期身份提供商生成的令牌。
  • 令牌颁发者标识符(Issuer Identifier) 身份提供者在生成 JWT 令牌时使用的标识符。 知行之桥验证令牌以确保它们包含此标识符。 这有助于确保仅接受预期身份提供商生成的令牌。

联合标识(Federation ID)设置

  • 端口 Id 端口的静态、唯一标识符。
  • 端口类型 显示端口类型及其用途的描述。
  • 端口描述 一个可选字段,用于提供端口及其在流中的角色的自由格式描述。
  • 登录用户的 ID 字段 来自身份提供者的什么值被视为联合 ID。 换句话说,这指定将用户从身份提供商映射到知行之桥用户名时用作联合 ID 的声明。
    当知行之桥用户通过身份提供商登录时,知行之桥会将该本地用户的联合 ID 与提供商的身份声明进行比较。 Key Claim 指定知行之桥应用于此比较的身份提供商的值。
    建议使用 oid 作为该值,但可以将其设置为用户唯一的任何值。

OAuth 设置

  • 端口 Id 端口的静态、唯一标识符。
  • 端口类型 显示端口类型及其用途的描述。
  • 端口描述 一个可选字段,用于提供端口及其在流中的角色的自由格式描述。
  • OAuth 客户 ID 与身份提供商中创建的 OAuth 应用程序关联的客户端 ID。
  • OAuth 客户密钥 与身份提供商中创建的 OAuth 应用程序关联的客户端密钥。
  • 默认范围(Scope) 从身份提供者请求的范围(权限集)的空格分隔列表。 通常,范围应至少包括“profile openid”以请求身份验证。

其他设置

  • 端口 Id 端口的静态、唯一标识符。
  • 端口类型 显示端口类型及其用途的描述。
  • 端口描述 一个可选字段,用于提供端口及其在流中的角色的自由格式描述。
  • 签名算法 已签名的 JWT 令牌接受哪些签名算法。 未签名的令牌永远不会被接受。

导入设置

如果有发现 URL,则可以单击 导入设置 按钮从 SSO 提供商导入设置。 这提供了诸如 颁发者证书令牌 URL 等设置的值。 如果使用此功能,颁发者证书会定期自动刷新,以确保当 SSO 提供商轮换这些证书时应用程序不会将用户锁定。

Azure AD 配置

本部分说明了当 Azure AD 用作标识提供者时上述每个设置的可能值。

  • 端口 Id 端口的静态、唯一标识符。
  • 端口类型 显示端口类型及其用途的描述。
  • 端口描述 一个可选字段,用于提供端口及其在流中的角色的自由格式描述。
  • Audience URIs - 只需要一个 URI,即 Azure AD 为知行之桥分配的应用程序 ID(客户端 ID)。
  • 授权 URLs - 此 URL 可以在 Azure 的终结点列表中作为“OAuth 2.0 authorization endpoint (v2)”找到。
  • 默认范围 - 仅需要范围 “profile” 和 “openid”,如有必要,可以添加更多范围。
  • 颁发者证书 - 可以在 此处 中找到 Azure AD 可能使用的公共证书。
  • 证书声明 - 这应该设置为在执行身份验证时联邦 ID 将与之匹配的字段名称。 在大多数情况下,正确的名称是 oid,代表对象 ID。 这应该只在极少数情况下设置为 oid 以外的值。
  • OAuth 客户端 ID - 此值由 Azure AD 在平台内创建 OAuth 应用程序后分配。
  • OAuth 客户端密钥 - 在平台内创建 OAuth 应用程序后,此值由 Azure AD 分配。
  • 令牌颁发者标识符 - 可以使用 Azure AD 元数据文档 找到该值,下一小节将对其进行介绍。
  • 令牌签名算法 - 应使用默认值 “RS256”。
  • 令牌 URL - 可以使用 Azure AD 元数据文档 找到该值,该文档在下一小节中进行了介绍。
  • 注销 URL - 此值可以设置为用户注销后应定向到的任何 URL。

元数据文档

Azure AD 门户包含一个元数据文档(Metadata Document),其中列出了配置 SSO 时要使用的重要值。在门户中,你可以在 Endpoints -> OpenID Metadata Document 下找到此文档。

浏览本文档以查找上面列出的字段,以确保你的 Azure AD 配置包含适合你的设置的值。

重定向 URIs

必须使用重定向 URI 配置 Azure AD,以确保在用户通过身份验证后将登录令牌重定向回知行之桥。 知行之桥的适当重定向 URI 具有以下结构:

[base_arc_url]/src/ssoCallback.rst

例如,如果知行之桥托管在端口 8001 上的 mydomain.com 上,则应使用以下重定向 URI: https://mydomain.com:8001/src/ssoCallback.rst

注意:该值区分大小写。