> ## 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>
```
