選單

使用 IIS 整合 Windows 驗證的 SSO(單一登入)

目錄

整合 Windows 身份驗證概述

整合 Windows 驗證 (IWA) 是一種當 IIS 和使用者登入相同網域時自動向 IIS 提供使用者驗證資訊的機制。當您使用 ASP.NET C# 建立網站時,您可以獲得使用者驗證確定和經過驗證的使用者資訊。

這允許使用者存取 IIS 託管(或連結)的 Web 應用程序,而無需額外的登入操作,並支援與其他應用程式伺服器的 SSO 整合。

*如果您未參與相同網域或未經驗證的使用者存取 IIS 頁面,則會顯示登入撥號盤,如果您未正確進行驗證,則會出現 HTTP 錯誤 401.1 – 未經授權。

SSO(單一登入)流程

Chat&Messenger On-Premise 的 Ultimate 計劃允許透過整合 Windows 驗證進行 SSO。 SSO流程如下。

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

使用 SSO 的使用者的使用者 ID 必須與 Active Directory 中的 UserPrincipalName 匹配,並提前在 Chat&Messenger 中註冊。 UserPrincipalName 是 我想要取得 Active Directory 使用者清單並建立 CSV。 另請參閱以下內容。

實現 SSO 的要求

將 Windows Server 加入網域

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

若要檢查現有 Windows Server 所加入的網域,請進入“伺服器管理員”→按一下左側功能表上的“本機伺服器”→按一下“電腦名稱”,並參考網域列。

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

安裝IIS

從伺服器角色安裝 IIS。

安裝IIS時,在角色服務選擇選項中勾選以下內容。

  • Windows 驗證
  • ISAPI 篩選器
  • 單獨安裝 ISAPI 擴充

請在與 CAMServer 相同的伺服器上並在連接埠 80 上執行 IIS。

ISAPI過濾器:支援IIS中載入擴充模組。需要載入 AspNetCoreModuleV2。

ISAPI 擴充:將 ISAPI 擴充功能新增至 IIS。 AspNetCoreModuleV2 操作所需。啟動 IIS 管理器 (iisreset)

安裝 ASP.NET Core 託管捆綁包

ASP.NET Core 託管捆綁包 請安裝。

在 IIS 環境中託管 ASP.NET Core 應用程式時,只需安裝 ASP.NET Core Hosting Bundle 就會自動安裝以下內容: .NET Runtime ASP.NET Core Runtime

安裝後,重新啟動 IIS 並確保處理程序映射中存在 AspNetCoreModuleV2。

重新啟動 IIS
處理程序映射

新增應用程式 (cam-iissso)

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

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

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

啟用 Windows 驗證

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

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

設定互聯網選項

將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 的電腦帳戶上完成。例如,廣告 對於使用主機名稱運行的 IIS,請按如下方式註冊 SPN:

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

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

setspn-L ad$

此結果 HTTP/sso.example.com 如果顯示,則表示 SPN 註冊成功。

HTTP代理連線環境下不可用

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

LoadBalancer + SSL 環境中的配置

如果您在 LoadBalancer + SSL 環境中使用 IIS 整合 Windows 驗證,請參閱以下部落格文章。

あわせて読みたい
如何配置 IIS 整合 Windows 驗證以在負載平衡器 + SSL 環境中成功 [關於整合 Windows 驗證] 當 IIS 和使用者屬於同一個 Active Directory 網域時,會自動執行整合 Windows 驗證。
  • 網址をコピーしました!
目錄