整合 Windows 身份驗證概述
整合 Windows 驗證 (IWA) 是一種當 IIS 和使用者登入相同網域時自動向 IIS 提供使用者驗證資訊的機制。當您使用 ASP.NET C# 建立網站時,您可以獲得使用者驗證確定和經過驗證的使用者資訊。
這允許使用者存取 IIS 託管(或連結)的 Web 應用程序,而無需額外的登入操作,並支援與其他應用程式伺服器的 SSO 整合。
*如果您未參與相同網域或未經驗證的使用者存取 IIS 頁面,則會顯示登入撥號盤,如果您未正確進行驗證,則會出現 HTTP 錯誤 401.1 – 未經授權。

SSO(單一登入)流程
Chat&Messenger On-Premise 的 Ultimate 計劃允許透過整合 Windows 驗證進行 SSO。 SSO流程如下。
- 用戶端首先造訪整合Windows認證頁面/cam-iissso
- /cam-iissso 頁面使用 ASP.NET 來確定它是否經過身份驗證並連結到 CAMServer。
- CAMServer 執行 LDAP 搜尋以確認其是常規 AD 用戶,產生 ssoToken(30 位元組或以上的唯一隨機值)和用於存取 CAMServer 的 URL,並要求重定向。
- 造訪 CAMServer 並使用 ssoToken 進行身份驗證。如果身份驗證成功,將指派用於 API 存取的會話 ID。

實現 SSO 的要求
安裝IIS
從伺服器角色安裝 IIS。
安裝 IIS 時選取「Windows 驗證」選項。
完成 IIS 角色安裝後,分別安裝 ISAPI 篩選器和 ISAPI 擴充。


安裝 ASP.NET Core 託管捆綁包
ASP.NET Core 託管捆綁包 請安裝。
安裝後,重新啟動 IIS 並確保處理程序映射中存在 AspNetCoreModuleV2。



新增應用程式 (cam-iissso)
將 cam-iissso 應用程式新增至預設網站。
- 別名: cam-iissso
- 物理路徑: \sys\cam-iissso-net8.0
另外,向 IIS_IUSRS 群組授予 cam-iissso-net8.0 資料夾的檢視存取權限(讀取和執行、列出資料夾內容、讀取)。


啟用 Windows 驗證
右鍵單擊“Windows 身份驗證”並選擇“啟用”。

設定互聯網選項
將IIS提供的站點加入內網區域
選擇“Internet 選項”,按一下“安全性”選項卡,選擇“本機 Intranet” 按一下“網站”按鈕,選擇“進階設定”,然後新增網站 URL
檢查自動登入
按一下“自訂等級”,然後在“使用者驗證”→“登入”下,請確保選擇“在內網路區域自動登入”。


LDAP 設定
使用 IIS 執行單一登入時,LDAP 設定(LDAPUrl、LDAPBaseDN、執行代理程式驗證的 AD 使用者)是必需的。

HTTP代理連線環境下不可用
請注意,SSO 不能在 HTTP 代理連線環境中使用。