概述
启用 SSO 需要在系统设置页面的安全选项卡上配置一组设置。配置 SSO 设置时,应为在 中创建的用户分配一个联合标识符 (Id)。此联合 Id 将 用户名与身份提供商实体关联。当 用户尝试登录应用程序时,会被重定向到 SSO 平台,必须在其中输入相应身份的凭据。 如果启用了即时 (JIT) 用户配置(同样可从安全选项卡启用),则登录时会根据从身份提供商收到的属性(例如用户的姓名和电子邮件地址)在 中自动创建新的用户帐户。此身份和访问管理 (IAM) 流程简化了用户入职流程,无需手动创建帐户。更多详情,请参阅即时 (JIT) 用户配置。 配置 SSO 且 用户拥有用于将其与身份提供商关联的联合 Id 值后,任何其他 SSO 用户管理的高级配置都应直接在 SSO 平台中执行,如下节所述。- 启用 SSO 后,不属于管理员角色的现有用户如果其帐户没有联合 Id(如下所述),将无法登录。如果需要重新配置 SSO 设置,管理员用户仍可在无 SSO 的情况下登录。
- 目前, 仅支持单个用户,不支持用户组。如果 SSO 平台为用户组提供访问权限,则必须在 系统设置页面上将该组中的每个单独用户添加为用户才能登录。每个用户都应引用身份提供商提供的联合 Id。
SSO 设置
本节介绍 中的各项 SSO 设置及其含义。这些设置的详细信息可能因身份提供商 (IdP) 而异。OpenID Connect 设置
SAML 2.0 设置
配置 Microsoft Entra ID 的 SSO
以下部分介绍如何通过 OpenID Connect 或 SAML 2.0 设置 Microsoft Entra ID 的 SSO。OpenID Connect 配置
使用 Microsoft Entra ID 进行单点登录 (SSO) 可简化对 的访问,并在登录时实现即时配置。以下步骤介绍如何使用 OpenID Connect 协议为 Microsoft Entra ID 设置 SSO。- 登录 Azure 门户并打开 Microsoft Entra ID。
- 登录 ,然后选择系统设置 > SSO以打开单点登录 (SSO) 设置对话框。
- 浏览到 Entra ID > App registrations > New registration,并为 创建应用注册。按照提示完成此过程。
-
在你的应用注册中,将重定向 URL 设置为 中单点登录 (SSO) 设置对话框中指定的回调 URL值,如下所示。

-
在 中的单点登录 (SSO) 设置对话框中,指定以下属性:
-
将客户端 ID属性设置为如下所示的新应用注册中找到的应用程序(客户端)Id值。

- 将客户端密钥属性设置为你在应用注册的客户端凭据部分中创建的新客户端密钥的值。
- 将发现 URL设置为应用注册中端点页面的 OpenID Connect MetaData document 值。然后,点击导入将剩余设置导入 。
-
将客户端 ID属性设置为如下所示的新应用注册中找到的应用程序(客户端)Id值。
- 在 中点击保存并测试以验证 SSO 配置。 将打开一个新标签页,并提示你登录 Microsoft 帐户。如果测试成功, 会显示成功消息以及声明详细信息。
-
(可选)使用你的联合 Id 更新你的 用户帐户。
- 从步骤 5 中的单点登录 (SSO) 设置对话框中复制联合 Id。
- 导航至系统设置 > 用户。然后,找到你的用户帐户并点击编辑。
- 将联合 Id 添加到你的用户帐户。然后点击保存以保存更改并退出对话框。
SAML 2.0 配置
借助基于 SAML 的单点登录 (SSO),用户可以通过其组织的身份提供商无缝进行身份验证,从而实现登录时的即时配置。以下步骤介绍如何使用 SAML 2.0 协议设置 Microsoft Entra ID SSO。- 登录 Azure 门户,打开 Microsoft Entra ID,然后导航到企业应用程序页面。
-
选择新建应用程序 > 创建你自己的应用程序。在创建你自己的应用程序对话框中:
- 输入应用程序名称(例如 知行之桥)。
- 通过选择**你想用你的应用程序执行什么操作?**下的选项之一,指定你希望对应用程序执行的操作。
- 点击创建。
- 在新创建的应用程序中,选择设置单点登录。
- 选择 SAML 作为登录方式。
- 登录 ,然后选择系统设置 > SSO。在该 SSO 选项卡上,点击单点登录 (SSO) 设置部分中的配置。此操作将显示单点登录 (SSO) 设置对话框。
-
选择 SAML 2.0。此选择将显示断言消费者服务 (ACS) URL 和令牌接收者 URI。
请保持此对话框打开,因为稍后这些步骤中需要返回到它。 -
在 Entra ID 中,将回复 URL(断言消费者服务 URL)设置为 中的断言消费者服务 (ACS) URL值。然后,将 Entra ID 中的标识符(实体 ID)设置为 中的令牌接收者 URI值。
如果你计划使用由身份提供商发起的登录,请将登录 URL文本框留空。
- 在 的单点登录 (SSO) 设置对话框中,将发现 URL设置为 Entra ID 中的 App Federation Metadata URL 值。然后,点击导入将剩余设置导入 。
-
在 中点击保存并测试以验证 SSO 配置。 将打开一个新标签页,并提示你登录 Microsoft 帐户。如果测试成功, 会显示成功消息以及声明详细信息。
如果使用 .NET 版,请参阅.NET 中的已知 SAML 2.0 配置问题,了解可能影响测试的 .NET 问题。
-
(可选)使用你的联合 Id 更新你的 用户帐户。
- 从步骤 9 中的单点登录 (SSO) 设置对话框中复制联合 Id。
- 导航至系统设置 > 用户。然后,找到你的用户帐户并点击编辑。
- 将联合 Id 添加到你的用户帐户。然后点击保存以保存更改并退出对话框。
配置 Okta 的 SSO
以下部分介绍如何通过 OpenID Connect 或 SAML 2.0 设置 Okta 的 SSO。OpenID Connect 配置
使用 Okta 进行单点登录 (SSO) 可简化对 的访问,并在登录时实现即时配置。以下步骤介绍如何使用 OpenID Connect 协议为 Okta 设置 SSO。-
登录 Okta 管理控制台,然后选择 Applications > Applications > Create App Integration。

-
在 Create a new app integration 对话框中,为 Sign-in method 选择 OIDC - OpenID Connect,并为 Application type 选择 Web Application。然后点击 Next。

- 登录 ,然后选择系统设置 > SSO以打开单点登录 (SSO) 设置对话框。
-
在 Okta 中,将重定向 URI 设置为 中单点登录 (SSO) 设置对话框中指定的回调 URL值,如下所示。
然后,点击 Next 创建你的应用程序。
-
找到并复制签发者 URL,如下所示。
- 在 Okta 管理控制台中,点击对应应用程序的 Sign-On 选项卡。
- 滚动至 OpenID Connect ID Token 部分。
- 从 Issuer 字段复制 URL。
如果希望通过授权服务器进行登录,必须获取该特定服务器的签发者 URL。在 Okta 管理控制台中,点击左侧导航窗格中的 Security,然后选择 API 以显示 Authorization Servers 列表。找到你的授权服务器并从 Issuer 字段复制 URL。 -
在 的单点登录 (SSO) 设置对话框中,指定以下属性:
- 将客户端 ID和客户端密钥属性设置为 Okta 中常规选项卡上的对应值。
-
将发现 URL设置为之前复制的签发者 URL,并附加 OpenID Connect 发现端点 (
.well-known/openid-configuration)。 示例:https://MyOrganization.okta.com/.well-known/openid-configuration然后,点击导入将剩余设置导入 。
- 在 中点击保存并测试以验证 SSO 配置。 将打开一个新标签页,并提示你登录 Okta 帐户。如果测试成功, 会显示成功消息以及声明详细信息。
-
(可选)使用你的联合 Id 更新你的 用户帐户。
- 从步骤 6 中的单点登录 (SSO) 设置对话框中复制联合 Id。
- 导航至系统设置 > 用户。然后,找到你的用户帐户并点击编辑。
- 将联合 Id 添加到你的用户帐户。然后点击保存以保存更改并退出对话框。
SAML 2.0 配置
借助基于 SAML 的单点登录 (SSO),用户可以通过其组织的身份提供商无缝进行身份验证,从而实现登录时的即时配置。以下步骤介绍如何使用 SAML 2.0 协议为 Okta 设置 SSO。- 登录 Okta 管理控制台,然后选择 Applications > Create App Integration。此步骤将打开 Create a new app integration 对话框。
- 选择 SAML 2.0 作为登录方式。然后点击 Next,这将打开 Create SAML Integration 对话框。
- 在 App Name 文本框中为你的应用程序输入一个描述性名称(例如 )。如果需要,也可以为应用程序添加徽标。然后点击 Next。
- 在 应用程序中,点击系统设置页面上的 SSO 选项卡。在该选项卡上,点击单点登录 (SSO) 设置部分中的配置。此操作将显示单点登录 (SSO) 设置对话框。
-
选择 SAML 2.0。此选择将显示断言消费者服务 (ACS) URL 和令牌接收者 URI。
请保持此对话框打开,因为稍后这些步骤中需要返回到它。 - 在 Okta 中,将 中的断言消费者服务 (ACS) URL值输入到 Single sign on URL 文本框中。然后,将 中的令牌接收者 URI值输入到 Audience URI (SP Entity ID) 文本框中。其余 Okta 字段可保留默认设置。
-
在 中,将发现 URL设置为你注册的 Okta 组织的域名,后跟
/oauth2/default/.well-known/openid-configuration。 示例:https://trial-1234567.okta.com/oauth2/default/.well-known/openid-configuration然后,点击导入将剩余设置导入 。 -
在 中点击保存并测试以验证 SSO 配置。 将打开一个新标签页,并提示你登录 Okta 帐户。如果测试成功, 会显示成功消息以及声明详细信息。
如果使用 .NET 版,请参阅.NET 中的已知 SAML 2.0 配置问题,了解可能影响测试的 .NET 问题。
-
(可选)使用你的联合 Id 更新你的 用户帐户。
- 从步骤 8 中的单点登录 (SSO) 设置对话框中复制联合 Id。
- 导航至系统设置 > 用户。然后,找到你的用户帐户并点击编辑。
- 将联合 Id 添加到你的用户帐户。然后点击保存以保存更改并退出对话框。
即时 (JIT) 用户配置
如前面所述,即时用户配置使 能够在首次登录时使用身份提供商提供的信息自动创建和管理用户帐户。当用户首次通过身份提供商访问 ,并且应用程序收到确认其身份的安全消息时,JIT 配置尤为有用。生成的帐户将被分配一个默认角色,该角色在 SSO 设置中指定。此功能简化了用户入职流程,并确保帐户详细信息与身份声明保持一致。 当用户使用 SAML 或 OpenID Connect 登录 时, 会通过联合 Id 搜索该用户。- 如果用户不存在, 会使用身份验证声明中提供的信息自动创建新用户。
- 如果用户确实存在,且其用户名和电子邮件与声明值不匹配, 会更新该用户的用户名和电子邮件。
身份提供商中的要求和映射
身份提供商的要求取决于你使用的是 SAML 2.0 还是 OpenID Connect。本节介绍每种身份验证方法的声明要求。 OpenID Connect- 默认情况下,子控件会映射到用户的角色,声明会映射到联合 Id。作为一个选项,admin 用户可以通过在 中设置键声明属性来使用其他字段(例如 oid)。
- Email 声明映射到 中的电子邮件地址。
- preferred_username 声明映射到 中的名称。
- NameID 和 Email 声明是必需的。
- (可选)你可以添加 Name 声明,该声明映射到 中的用户名。
- (可选)你可以添加 Role 声明,用于控制用户的角色。
-
按如下方式启用 JIT 配置:
- 在 中选择系统设置 > SSO。
-
点击平板和铅笔
图标以打开即时 (JIT) 用户配置对话框。
- 在JIT 配置类别下选择已启用。
- (可选)从默认角色列表中选择一个角色,设置默认角色。
- 点击保存以保存你的选择并退出对话框。
- 如果声明包含角色, 会搜索该角色并更新用户帐户。
- 如果角色声明不存在或无效, 会使用已配置的默认角色。这意味着,除非身份提供商在声明中分配角色,否则使用 JIT 默认角色创建的用户无法由 中的管理员用户覆盖其角色。
- 如果未配置默认角色,则用户帐户没有角色,管理员用户必须手动更新用户的角色。
.NET 中的已知 SAML 2.0 配置问题
在 .NET 版中配置 SAML 2.0 时,点击保存并测试按钮似乎会成功完成身份验证,但随后会显示错误。这是一个已知的 .NET 平台问题,不会影响实际的 SAML 登录。 默认情况下,Web.Config 中不包含这些设置,因为放宽 SameSite Cookie 限制可能会增加遭受跨站请求伪造 (CSRF) 攻击的风险。启用此解决方法会以更严格的默认安全性为代价,换取与 .NET 中某些 SAML 2.0 登录流程的兼容性。 请按以下步骤解决此问题:-
将以下内容添加到 Web.Config 文件(默认情况下,该文件位于
C:\Program Files\CData\CData Arc\www):-
在
authentication mode="forms"中添加cookieSameSite="None" requireSSL="true" -
在
httpCookies中添加sameSite="None" requireSSL="true" -
在
sessionState中添加cookieSameSite="None" cookieless="UseCookies"
-
在
- 使用 HTTPS 重启知行之桥。