選單

使用 IIS 整合 Windows 驗證的 SSO

請在新安裝的環境中使用以下命令。

目錄

整合 Windows 身份驗證概述

整合 Windows 驗證 (IWA) 是一種機制,當 IIS 和使用者都登入相同網域時,它會自動向 IIS 提供使用者驗證資訊。使用 ASP.NET 的 C# 建立網站時,您可以確定使用者是否已通過驗證,並擷取有關已通過身分驗證使用者的資訊。

這樣,使用者無需額外的登入步驟即可存取託管在 IIS 上(或與 IIS 整合)的 Web 應用程序,並可與其他應用程式伺服器實現 SSO 整合。

*如果使用者未加入相同網域或未通過驗證,則 IIS 頁面將顯示登入撥號,如果驗證未正確執行,則會發生 HTTP 錯誤 401.1 – 未授權。

單一登入 (SSO) 流程

Chat&Messenger 本地部署的 Ultimate 方案透過整合的 Windows 驗證支援單一登入 (SSO)。 SSO 流程如下:

  1. 用戶端首先存取整合的 Windows 驗證頁面 /cam-iissso。
  2. /cam-iissso 頁面使用 ASP.NET 來確定使用者是否已通過身份驗證,然後連接到 CAMServer。
  3. CAMServer 執行 LDAP 搜尋以驗證使用者是否為合法的 AD 用戶,產生用於存取 CAMServer 的 URL 以及 ssoToken(30 位元組或更長的唯一隨機值),然後請求重定向。
  4. 造訪 CAMServer 並使用 ssoToken 進行身份驗證。身份驗證成功後,系統將指派一個用於 API 存取的會話 ID。

使用單一登入 (SSO) 的使用者的使用者 ID 必須與 Active Directory 中的 UserPrincipalName 匹配,並且必須事先在 Chat&Messenger 中註冊。 UserPrincipalName 是 我想取得 Active Directory 使用者清單並建立一個 CSV 檔案。 請同時參考以下內容。

實施單一登入的要求

將 Windows Server 加入網域

請將執行 CAMServer/IIS 的 Windows 伺服器加入 Active Directory 網域。

若要檢查現有 Windows Server 加入哪些網域,請前往“伺服器管理員”,按一下左側功能表中的“本機伺服器”,按一下“電腦名稱”,然後參考網域欄位。

此外,IIS 應該與 CAMServer 位於同一台伺服器上,並在 80 連接埠上運作。如果在 CAMServer 前面放置一個負載平衡器,CAMServer 將在 8080 連接埠上運行,因此 IIS 也可以使用 443 連接埠。

IIS安裝

從伺服器角色安裝 IIS。安裝 IIS 時,請在角色服務選擇選項中選取以下選項。

  • Windows 驗證
  • ISAPI 篩選器
  • ISAPI 擴充

ISAPI 篩選器:支援在 IIS 中載入擴充模組。載入 AspNetCoreModuleV2 需要此篩選器。

ISAPI 擴充:為 IIS 新增 ISAPI 擴充。這是 AspNetCoreModuleV2 正常運作所必需的。

安裝 ASP.NET Core Hosting Bundle。

ASP.NET Core 託管包 請安裝軟體。安裝完成後,重新啟動 IIS 並驗證 AspNetCoreModuleV2 是否存在於處理程序對應中。

要在 IIS 環境中託管 ASP.NET Core 應用程序,只需安裝 ASP.NET Core Hosting Bundle 即可。

同樣,在升級 ASP.NET Core 運行時,只需下載並安裝 Hosting Bundle 即可。您可以使用以下命令檢查您正在執行的 ASP.NET Core 執行時間:
dotnet –list-runtimes

IIS重啟
處理程序映射

新增應用程式(cam-iissso)

請將 cam-iissso 應用程式新增至您的預設網站。

  • 別名:cam-iissso
  • 物理路徑: \sys\cam-iissso-net8.0

此外,授予 IIS_IUSRS 群組對 cam-iissso-net8.0 資料夾的唯讀存取權限(讀取和執行、列出資料夾內容、讀取)。

啟用 Windows 驗證

右鍵單擊“Windows 驗證”,然後選擇“啟用”。

如果啟用了“匿名身份驗證”,請將其停用。

Internet 選項設定

將 IIS 提供的站點新增至內網區域。

選擇“Internet 選項”,按一下“安全性”選項卡,然後選擇“本機 Intranet”。按一下“網站”按鈕,選擇“進階”,然後新增網站 URL。

驗證自動登入功能。

點擊“自訂等級”,然後在“使用者驗證”→“登入”下,請確保已選擇“在內網路區域自動登入”。

C&M 使用者的所有用戶端終端都需要此設置,但可以使用群組原則管理控制台進行集中管理。

LDAP 設定

如果您想使用 IIS 實現單一登錄,LDAP 設定(需要 LDAPUrl、LDAPBaseDN 和執行代理身份驗證的 AD 使用者。)

使用 FQDN(完全限定網域名稱)進行存取和 SPN 註冊。

使用主機名稱(NetBIOS 名稱)存取 IIS Windows 整合式驗證頁面不需要註冊,但使用 FQDN(完全限定域名,例如 sso.example.com)存取時需要 SPN 註冊。

服務主體名稱 (SPN) 是 Kerberos 驗證中用於唯一識別 Active Directory 上特定服務的名稱。當使用完全限定網域名稱 (FQDN) 存取服務時,註冊 SPN 可使用戶端正確要求其正在存取的服務的 Kerberos 票證。

例如 https://sso.example.com 存取服務時,用戶端(瀏覽器)會向 Active Directory 要求票證,聲明「我想連線到名為 HTTP/sso.example.com 的服務」。 Active Directory 會檢查 SPN 與哪個帳戶關聯,並發出對應的服務票證。如果 SPN 註冊不正確,Kerberos 驗證將會失敗,並顯示驗證對話方塊。

SPN 註冊是針對託管 IIS 的電腦帳戶執行的。例如:廣告 對於執行在主機名稱 [hostname] 下的 IIS,請如下註冊 SPN:

setspn -S HTTP/sso.example.com ad$

註冊後,您可以使用以下命令進行檢查:

setspn -L ad$

這一結果 HTTP/sso.example.com 如果顯示此訊息,則表示您的 SPN 註冊成功。

在HTTP代理連線環境下不可用。

請注意,HTTP代理連線環境下不支援SSO。

負載平衡器 + SSL 環境配置

如果您在負載平衡器 + SSL 環境中使用 IIS 整合 Windows 驗證,請參閱下列部落格文章。

あわせて読みたい
在負載平衡器 + SSL 環境中成功設定 IIS 整合 Windows 驗證。 【關於整合 Windows 驗證】當 IIS 和使用者屬於同一個 Active Directory 網域時,整合 Windows 驗證會自動啟用驗證….
あわせて読みたい
在 L4 負載平衡器環境中成功設定 IIS 以實現整合 Windows 驗證。 【摘要】本文介紹如何在 L4 負載平衡器 + SSL 終止環境中設定 IIS 中的整合式 Windows 驗證 (IWA)。.
  • 網址をコピーしました!
目錄