概觀
啟用 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 重啟知行之橋。