> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 单点登录（SSO）和即时 (JIT) 用户配置

> 如何在知行之桥中通过 SAML 2.0 或 OpenID Connect 配置单点登录，包括 Microsoft Entra ID 和 Okta 集成。

export const siteNameShort = "知行之桥";

export const siteName = "知行之桥";

{siteName} 支持通过 SAML 2.0 或 OpenID 身份验证协议进行单点登录 (SSO)。此功能允许支持这些协议的身份提供商（例如 Microsoft Entra ID（以前称为 Azure Active Directory）或 Okta）作为 {siteNameShort} 的 SSO 平台。

## 概述

启用 SSO 需要在**系统设置**页面的**安全**选项卡上配置一组设置。配置 SSO 设置时，应为在 {siteNameShort} 中创建的用户分配一个联合标识符 (Id)。此联合 Id 将 {siteNameShort} 用户名与身份提供商实体关联。当 {siteNameShort} 用户尝试登录应用程序时，会被重定向到 SSO 平台，必须在其中输入相应身份的凭据。

如果启用了即时 (JIT) 用户配置（同样可从**安全**选项卡启用），则登录时会根据从身份提供商收到的属性（例如用户的姓名和电子邮件地址）在 {siteNameShort} 中自动创建新的用户帐户。此身份和访问管理 (IAM) 流程简化了用户入职流程，无需手动创建帐户。更多详情，请参阅[即时 (JIT) 用户配置](#即时-jit-用户配置)。

配置 SSO 且 {siteNameShort} 用户拥有用于将其与身份提供商关联的联合 Id 值后，任何其他 SSO 用户管理的高级配置都应直接在 SSO 平台中执行，如下节所述。

<Note>
  * 启用 SSO 后，不属于[管理员角色](./user-roles#admin-role)的现有用户如果其帐户没有联合 Id（如下所述），将无法登录。如果需要重新配置 SSO 设置，管理员用户仍可在无 SSO 的情况下登录。

  * 目前，{siteNameShort} 仅支持单个用户，不支持用户组。如果 SSO 平台为用户组提供访问权限，则必须在 {siteNameShort} **系统设置**页面上将该组中的每个单独用户添加为用户才能登录。每个用户都应引用身份提供商提供的联合 Id。
</Note>

以下部分介绍如何通过 Microsoft Entra ID 和 Okta 这两个身份提供商，以及 OpenID Connect 和 SAML 2.0 身份验证协议设置 SSO 配置。

## SSO 设置

本节介绍 {siteNameShort} 中的各项 SSO 设置及其含义。这些设置的详细信息可能因身份提供商 (IdP) 而异。

### OpenID Connect 设置

| 设置               | 描述                                                                                                                                                                       |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **回调 URL**       | 回调 URL 在 IdP（而非 {siteNameShort}）中配置，用于指示用户在 IdP 上完成身份验证后应返回的位置。                                                                                                          |
| **OAuth 客户端 Id** | 与 IdP 中创建的 OAuth 应用程序关联的客户端 Id。                                                                                                                                          |
| **OAuth 客户端密钥**  | 与 IdP 中创建的 OAuth 应用程序关联的客户端密钥。                                                                                                                                           |
| **令牌接收者 URI**    | SSO 登录令牌的预期接收者。这可确保 SSO 平台生成的令牌仅供 {siteNameShort} 使用。将此值设置为在你的 SSO 平台中将 {siteNameShort} 标识为受信任应用程序的 URI（例如 SSO 平台为 {siteNameShort} 生成的\_应用程序 Id\_）。要容纳多个 URI，请提供逗号分隔的列表。 |
| **发现 URL**       | 从 SSO 提供商导入设置时必需。                                                                                                                                                        |
| **令牌颁发者证书**      | IdP 用于签署 JWT 令牌的证书的公共部分。这有助于确保只接受由预期 IdP 生成的令牌。                                                                                                                          |
| **令牌颁发者标识符**     | IdP 生成 JWT 令牌时使用的标识符。{siteNameShort} 会验证令牌以确保其包含此标识符。这有助于确保只接受由预期 IdP 生成的令牌。                                                                                             |
| **授权 URL**       | 用户应通过 IdP 执行授权的 URL。当 SSO 用户尝试登录 {siteNameShort} 时，应用程序会将用户重定向到此 URL，用户可在其中输入其 SSO 平台凭据。                                                                                 |
| **令牌 URL**       | 可从 IdP 获取安全身份验证令牌的 URL。                                                                                                                                                  |
| **注销 URL**       | 指定 {siteNameShort} 用户退出应用程序后重定向到的位置。                                                                                                                                     |
| **默认范围**         | 向 IdP 请求的以空格分隔的范围（权限集）列表。通常，范围至少应包含 `profile openid` 以请求身份验证。                                                                                                            |
| **键声明**          | 来自 IdP 的值，用作联合 Id。换句话说，这指定在将用户从 IdP 映射到 {siteNameShort} 用户名时用作联合 Id 的声明。                                                                                                 |
| **令牌签名算法**       | 接受已签名 JWT 令牌中的哪些签名算法。永远不会接受未签名的令牌。                                                                                                                                       |
| **即时 (JIT) 配置**  | 用户首次登录时，是否在 {siteNameShort} 中自动创建新用户帐户。用户详细信息基于声明中提供的属性。                                                                                                                 |
| **默认角色**         | 分配给 JIT 配置期间创建的帐户的[角色](./user-roles)（Support、Standard 或 Admin）。如果选择**无默认角色**，则使用声明中指定的角色。                                                                                |

### SAML 2.0 设置

| 设置                    | 描述                                                                                              |
| --------------------- | ----------------------------------------------------------------------------------------------- |
| **断言消费者服务 (ACS) URL** | 用户成功登录后，IdP 向 {siteNameShort} 应用程序发送 SAML 身份验证响应的端点。这类似于 OpenID 中的回调 URL 设置。                    |
| **令牌接收者 URI**         | SAML 断言所针对的唯一标识符（通常是应用程序的实体 ID）。用于验证响应是否适用于你的应用程序。                                              |
| **SAML 发现 URL**       | 用于确定应使用哪个 IdP 进行身份验证的端点。从你的 SSO 提供商导入设置时必需。                                                     |
| **令牌颁发者证书**           | IdP 用于签署 JWT 令牌的证书的公共部分。有助于确保只接受由预期 IdP 生成的令牌。                                                  |
| **实体 ID**             | 用于在 SAML 身份验证过程中标识 IdP 或服务提供商的全局唯一标识符（通常格式化为 URI）。                                              |
| **SSO URL**           | 服务提供商将用户重定向到的 IdP 端点，用于启动 SAML 身份验证流程。                                                          |
| **注销 URL**            | 指定 {siteNameShort} 用户退出应用程序后重定向到的位置。                                                            |
| **即时 (JIT) 配置**       | 用户首次登录时是否在 {siteNameShort} 中自动创建新用户帐户。用户详细信息基于 SAML 断言中提供的属性。                                   |
| **默认角色**              | 分配给 JIT 配置期间创建的帐户的[角色](./user-roles)（Support、Standard 或 Admin）。如果选择**无默认角色**，则使用 SAML 断言中指定的角色。 |

## 配置 Microsoft Entra ID 的 SSO

以下部分介绍如何通过 OpenID Connect 或 SAML 2.0 设置 Microsoft Entra ID 的 SSO。

### OpenID Connect 配置

使用 Microsoft Entra ID 进行单点登录 (SSO) 可简化对 {siteName} 的访问，并在登录时实现即时配置。以下步骤介绍如何使用 OpenID Connect 协议为 Microsoft Entra ID 设置 SSO。

1. 登录 Azure 门户并打开 Microsoft Entra ID。

2. 登录 {siteName}，然后选择**系统设置 > SSO**以打开**单点登录 (SSO) 设置**对话框。

3. 浏览到 **Entra ID > App registrations > New registration**，并为 {siteNameShort} 创建应用注册。按照提示完成此过程。

4. 在你的应用注册中，将重定向 URL 设置为 {siteNameShort} 中**单点登录 (SSO) 设置**对话框中指定的**回调 URL**值，如下所示。

   <img src="https://mintcdn.com/qiao/ilnLy7gsSdFqbKmI/public/images/settings_sso_openid-connect-configuration_1.png?fit=max&auto=format&n=ilnLy7gsSdFqbKmI&q=85&s=28e7bc9aed21da9e5cbc158cc3782309" alt="Redirect URL configuration in Azure app registration" width="450" data-path="public/images/settings_sso_openid-connect-configuration_1.png" />

5. 在 {siteNameShort} 中的**单点登录 (SSO) 设置**对话框中，指定以下属性：

   1. 将**客户端 ID**属性设置为如下所示的新应用注册中找到的**应用程序（客户端）Id**值。

      <img src="https://mintcdn.com/qiao/ilnLy7gsSdFqbKmI/public/images/settings_sso_openid-connect-configuration_2.png?fit=max&auto=format&n=ilnLy7gsSdFqbKmI&q=85&s=6ff573127fc88f8d02413bd8efc57adf" alt="Application client ID in Azure app registration" width="800" data-path="public/images/settings_sso_openid-connect-configuration_2.png" />

   2. 将**客户端密钥**属性设置为你在应用注册的**客户端凭据**部分中创建的新客户端密钥的值。

   3. 将**发现 URL**设置为应用注册中**端点**页面的 **OpenID Connect MetaData document** 值。然后，点击**导入**将剩余设置导入 {siteNameShort}。

6. 在 {siteNameShort} 中点击**保存并测试**以验证 SSO 配置。{siteNameShort} 将打开一个新标签页，并提示你登录 Microsoft 帐户。如果测试成功，{siteNameShort} 会显示成功消息以及声明详细信息。

7. （可选）使用你的联合 Id 更新你的 {siteNameShort} 用户帐户。

   1. 从步骤 5 中的**单点登录 (SSO) 设置**对话框中复制联合 Id。

   2. 导航至**系统设置 > 用户**。然后，找到你的用户帐户并点击**编辑**。

   3. 将联合 Id 添加到你的用户帐户。然后点击**保存**以保存更改并退出对话框。

至此，你已完成基本的 OpenID Connect SSO 设置，允许用户通过 Microsoft Entra ID 登录 {siteNameShort}。

### SAML 2.0 配置

借助基于 SAML 的单点登录 (SSO)，用户可以通过其组织的身份提供商无缝进行身份验证，从而实现登录时的即时配置。以下步骤介绍如何使用 SAML 2.0 协议设置 Microsoft Entra ID SSO。

1. 登录 Azure 门户，打开 Microsoft Entra ID，然后导航到**企业应用程序**页面。

2. 选择**新建应用程序 > 创建你自己的应用程序**。在**创建你自己的应用程序**对话框中：

   1. 输入应用程序名称（例如 **知行之桥**）。

   2. 通过选择\*\*你想用你的应用程序执行什么操作？\*\*下的选项之一，指定你希望对应用程序执行的操作。

   3. 点击**创建**。

3. 在新创建的应用程序中，选择**设置单点登录**。

4. 选择 **SAML** 作为登录方式。

5. 登录 {siteName}，然后选择**系统设置 > SSO**。在该 **SSO** 选项卡上，点击**单点登录 (SSO) 设置**部分中的**配置**。此操作将显示**单点登录 (SSO) 设置**对话框。

6. 选择 **SAML 2.0**。此选择将显示断言消费者服务 (ACS) URL 和令牌接收者 URI。

   <img src="https://mintcdn.com/qiao/ilnLy7gsSdFqbKmI/public/images/settings_sso_saml_1.png?fit=max&auto=format&n=ilnLy7gsSdFqbKmI&q=85&s=78ee434fcc01b5d5b2e14adf98d26b0a" alt="SAML 2.0 SSO settings dialog showing ACS URL and audience URI" width="400" data-path="public/images/settings_sso_saml_1.png" />

   <Note>请保持此对话框打开，因为稍后这些步骤中需要返回到它。</Note>

7. 在 Entra ID 中，将**回复 URL（断言消费者服务 URL）**设置为 {siteNameShort} 中的**断言消费者服务 (ACS) URL**值。然后，将 Entra ID 中的**标识符（实体 ID）**设置为 {siteNameShort} 中的**令牌接收者 URI**值。

   <Note>如果你计划使用由身份提供商发起的登录，请将**登录 URL**文本框留空。</Note>

8. 在 {siteNameShort} 的**单点登录 (SSO) 设置**对话框中，将**发现 URL**设置为 Entra ID 中的 **App Federation Metadata URL** 值。然后，点击**导入**将剩余设置导入 {siteNameShort}。

9. 在 {siteNameShort} 中点击**保存并测试**以验证 SSO 配置。{siteNameShort} 将打开一个新标签页，并提示你登录 Microsoft 帐户。如果测试成功，{siteNameShort} 会显示成功消息以及声明详细信息。

   <Note>如果使用 [.NET 版](../../installation/windows-edition)，请参阅[.NET 中的已知 SAML 2.0 配置问题](#net-中的已知-saml-20-配置问题)，了解可能影响测试的 .NET 问题。</Note>

10. （可选）使用你的联合 Id 更新你的 {siteNameShort} 用户帐户。

    1. 从步骤 9 中的**单点登录 (SSO) 设置**对话框中复制联合 Id。

    2. 导航至**系统设置 > 用户**。然后，找到你的用户帐户并点击**编辑**。

    3. 将联合 Id 添加到你的用户帐户。然后点击**保存**以保存更改并退出对话框。

至此，你已完成基本的 SAML SSO 设置，允许用户通过 Microsoft Entra ID 登录 {siteNameShort}。

## 配置 Okta 的 SSO

以下部分介绍如何通过 OpenID Connect 或 SAML 2.0 设置 Okta 的 SSO。

### OpenID Connect 配置

使用 Okta 进行单点登录 (SSO) 可简化对 {siteName} 的访问，并在登录时实现即时配置。以下步骤介绍如何使用 OpenID Connect 协议为 Okta 设置 SSO。

1. 登录 Okta 管理控制台，然后选择 **Applications > Applications > Create App Integration**。

   <img src="https://mintcdn.com/qiao/ilnLy7gsSdFqbKmI/public/images/settings_sso_openid-configure-okta_1.png?fit=max&auto=format&n=ilnLy7gsSdFqbKmI&q=85&s=8b0295ca9f4f378f47fb42429d86b26e" alt="Okta create app integration" width="800" data-path="public/images/settings_sso_openid-configure-okta_1.png" />

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

   <img src="https://mintcdn.com/qiao/ilnLy7gsSdFqbKmI/public/images/settings_sso_openid-configure-okta_2.png?fit=max&auto=format&n=ilnLy7gsSdFqbKmI&q=85&s=807fb7ac2338bd1f14881f9fdbff8545" alt="Create new app integration dialog in Okta" width="600" data-path="public/images/settings_sso_openid-configure-okta_2.png" />

3. 登录 {siteName}，然后选择**系统设置 > SSO**以打开**单点登录 (SSO) 设置**对话框。

4. 在 Okta 中，将重定向 URI 设置为 {siteNameShort} 中**单点登录 (SSO) 设置**对话框中指定的**回调 URL**值，如下所示。

   <img src="https://mintcdn.com/qiao/ilnLy7gsSdFqbKmI/public/images/settings_sso_openid-configure-okta_3.png?fit=max&auto=format&n=ilnLy7gsSdFqbKmI&q=85&s=962ab1a0a71906888807e6708ae8ab10" alt="Redirect URI configuration in Okta" width="700" data-path="public/images/settings_sso_openid-configure-okta_3.png" />

   然后，点击 **Next** 创建你的应用程序。

5. 找到并复制签发者 URL，如下所示。

   1. 在 Okta 管理控制台中，点击对应应用程序的 **Sign-On** 选项卡。

   2. 滚动至 **OpenID Connect ID Token** 部分。

   3. 从 **Issuer** 字段复制 URL。

   <Note>如果希望通过授权服务器进行登录，必须获取该特定服务器的签发者 URL。在 Okta 管理控制台中，点击左侧导航窗格中的 **Security**，然后选择 **API** 以显示 **Authorization Servers** 列表。找到你的授权服务器并从 **Issuer** 字段复制 URL。</Note>

6. 在 {siteNameShort} 的**单点登录 (SSO) 设置**对话框中，指定以下属性：

   1. 将**客户端 ID**和**客户端密钥**属性设置为 Okta 中**常规**选项卡上的对应值。

   2. 将**发现 URL**设置为之前复制的签发者 URL，并附加 OpenID Connect 发现端点 (`.well-known/openid-configuration`)。

      **示例：** `https://MyOrganization.okta.com/.well-known/openid-configuration`

      然后，点击**导入**将剩余设置导入 {siteNameShort}。

7. 在 {siteNameShort} 中点击**保存并测试**以验证 SSO 配置。{siteNameShort} 将打开一个新标签页，并提示你登录 Okta 帐户。如果测试成功，{siteNameShort} 会显示成功消息以及声明详细信息。

8. （可选）使用你的联合 Id 更新你的 {siteNameShort} 用户帐户。

   1. 从步骤 6 中的**单点登录 (SSO) 设置**对话框中复制联合 Id。

   2. 导航至**系统设置 > 用户**。然后，找到你的用户帐户并点击**编辑**。

   3. 将联合 Id 添加到你的用户帐户。然后点击**保存**以保存更改并退出对话框。

至此，你已完成基本的 OpenID Connect SSO 设置，允许用户通过 Okta 登录 {siteNameShort}。

### SAML 2.0 配置

借助基于 SAML 的单点登录 (SSO)，用户可以通过其组织的身份提供商无缝进行身份验证，从而实现登录时的即时配置。以下步骤介绍如何使用 SAML 2.0 协议为 Okta 设置 SSO。

1. 登录 Okta 管理控制台，然后选择 **Applications > Create App Integration**。此步骤将打开 **Create a new app integration** 对话框。

2. 选择 **SAML 2.0** 作为登录方式。然后点击 **Next**，这将打开 **Create SAML Integration** 对话框。

3. 在 **App Name** 文本框中为你的应用程序输入一个描述性名称（例如 **{siteName}**）。如果需要，也可以为应用程序添加徽标。然后点击 **Next**。

4. 在 {siteNameShort} 应用程序中，点击**系统设置**页面上的 **SSO** 选项卡。在该选项卡上，点击**单点登录 (SSO) 设置**部分中的**配置**。此操作将显示**单点登录 (SSO) 设置**对话框。

5. 选择 **SAML 2.0**。此选择将显示断言消费者服务 (ACS) URL 和令牌接收者 URI。

   <img src="https://mintcdn.com/qiao/ilnLy7gsSdFqbKmI/public/images/settings_sso_saml_1.png?fit=max&auto=format&n=ilnLy7gsSdFqbKmI&q=85&s=78ee434fcc01b5d5b2e14adf98d26b0a" alt="SAML 2.0 SSO settings dialog showing ACS URL and audience URI" width="400" data-path="public/images/settings_sso_saml_1.png" />

   <Note>请保持此对话框打开，因为稍后这些步骤中需要返回到它。</Note>

6. 在 Okta 中，将 {siteNameShort} 中的**断言消费者服务 (ACS) URL**值输入到 **Single sign on URL** 文本框中。然后，将 {siteNameShort} 中的**令牌接收者 URI**值输入到 **Audience URI (SP Entity ID)** 文本框中。其余 Okta 字段可保留默认设置。

7. 在 {siteNameShort} 中，将**发现 URL**设置为你注册的 Okta 组织的域名，后跟 `/oauth2/default/.well-known/openid-configuration`。

   **示例：** `https://trial-1234567.okta.com/oauth2/default/.well-known/openid-configuration`

   然后，点击**导入**将剩余设置导入 {siteNameShort}。

8. 在 {siteNameShort} 中点击**保存并测试**以验证 SSO 配置。{siteNameShort} 将打开一个新标签页，并提示你登录 Okta 帐户。如果测试成功，{siteNameShort} 会显示成功消息以及声明详细信息。

   <Note>如果使用 [.NET 版](../../installation/windows-edition)，请参阅[.NET 中的已知 SAML 2.0 配置问题](#net-中的已知-saml-20-配置问题)，了解可能影响测试的 .NET 问题。</Note>

9. （可选）使用你的联合 Id 更新你的 {siteNameShort} 用户帐户。

   1. 从步骤 8 中的**单点登录 (SSO) 设置**对话框中复制联合 Id。

   2. 导航至**系统设置 > 用户**。然后，找到你的用户帐户并点击**编辑**。

   3. 将联合 Id 添加到你的用户帐户。然后点击**保存**以保存更改并退出对话框。

至此，你已完成基本的 SAML SSO 设置，可以通过 Okta 登录 {siteNameShort}。

## 即时 (JIT) 用户配置

如[前面](#概述)所述，*即时用户配置*使 {siteNameShort} 能够在首次登录时使用身份提供商提供的信息自动创建和管理用户帐户。当用户首次通过身份提供商访问 {siteNameShort}，并且应用程序收到确认其身份的安全消息时，JIT 配置尤为有用。生成的帐户将被分配一个默认角色，该角色在 SSO 设置中指定。此功能简化了用户入职流程，并确保帐户详细信息与身份声明保持一致。

当用户使用 SAML 或 OpenID Connect 登录 {siteNameShort} 时，{siteNameShort} 会通过联合 Id 搜索该用户。

* 如果用户**不存在**，{siteNameShort} 会使用身份验证声明中提供的信息自动创建新用户。

* 如果用户**确实存在**，且其用户名和电子邮件与声明值不匹配，{siteNameShort} 会更新该用户的用户名和电子邮件。

### 身份提供商中的要求和映射

身份提供商的要求取决于你使用的是 SAML 2.0 还是 OpenID Connect。本节介绍每种身份验证方法的声明要求。

**OpenID Connect**

* 默认情况下，子控件会映射到用户的角色，声明会映射到联合 Id。作为一个选项，**admin** 用户可以通过在 {siteNameShort} 中设置**键声明**属性来使用其他字段（例如 **oid**）。

* **Email** 声明映射到 {siteNameShort} 中的**电子邮件地址**。

* **preferred\_username** 声明映射到 {siteNameShort} 中的**名称**。

**SAML 2.0**

* **NameID** 和 **Email** 声明是必需的。

* （可选）你可以添加 **Name** 声明，该声明映射到 {siteNameShort} 中的**用户名**。

* （可选）你可以添加 **Role** 声明，用于控制用户的角色。

\###知行之桥中的 JIT 配置

要在 {siteNameShort} 中启用和配置 JIT 配置：

1. 按如下方式启用 JIT 配置：

   1. 在 {siteNameShort} 中选择**系统设置 > SSO**。

   2. 点击平板和铅笔 <img src="https://mintcdn.com/qiao/BoZrJ8_ctEN6h_9z/public/images/xmlmap_expressioneditor_icon.png?fit=max&auto=format&n=BoZrJ8_ctEN6h_9z&q=85&s=7ead9906fb7ee170d403e2536c8a545f" alt="tablet and pencil" noZoom style={{ display: "inline-block", verticalAlign: "middle", height: "0.9em", margin: 0 }} width="28" height="26" data-path="public/images/xmlmap_expressioneditor_icon.png" /> 图标以打开**即时 (JIT) 用户配置**对话框。

   3. 在**JIT 配置**类别下选择**已启用**。

   4. （可选）从**默认角色**列表中选择一个角色，设置默认角色。

   5. 点击**保存**以保存你的选择并退出对话框。

用户登录时，{siteNameShort} 会根据以下顺序调整角色：

1. 如果声明包含角色，{siteNameShort} 会搜索该角色并更新用户帐户。

2. 如果角色声明不存在或无效，{siteNameShort} 会使用已配置的默认角色。这意味着，除非身份提供商在声明中分配角色，否则使用 JIT 默认角色创建的用户无法由 {siteNameShort} 中的管理员用户覆盖其角色。

3. 如果未配置默认角色，则用户帐户没有角色，**管理员**用户必须手动更新用户的角色。

## .NET 中的已知 SAML 2.0 配置问题

在 .NET 版中配置 SAML 2.0 时，点击**保存并测试**按钮似乎会成功完成身份验证，但随后会显示错误。这是一个已知的 .NET 平台问题，不会影响实际的 SAML 登录。

默认情况下，Web.Config 中不包含这些设置，因为放宽 SameSite Cookie 限制可能会增加遭受跨站请求伪造 (CSRF) 攻击的风险。启用此解决方法会以更严格的默认安全性为代价，换取与 .NET 中某些 SAML 2.0 登录流程的兼容性。

请按以下步骤解决此问题：

1. 将以下内容添加到 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"`

2. 使用 HTTPS 重启知行之桥。

此示例 Web.Config 文件显示了必要的更新：

```xml theme={null}
<configuration>
  <system.web>
    <!--  ... -->
    <authentication mode="Forms">
      <forms name="Arc" path="/" loginUrl="~/login.rst" protection="All" timeout="30" defaultUrl="~/default.rst" cookieSameSite="None" requireSSL="true">
      </forms>
    </authentication>
    <!--  ... -->
    <httpCookies httpOnlyCookies="true" sameSite="None" requireSSL="true"/>
    <sessionState timeout="10" cookieSameSite="None" cookieless="UseCookies" />
    <!--  ... -->
  </system.web>
</configuration>
```
