選單

使用整合 Windows 身份驗證的 SSO

目錄

概述

在 Active Directory 環境中,使用整合式 Windows 驗證 (Kerberos) 可讓使用者使用與登入 Windows 時相同的驗證憑證。自動單一登入 (SSO) 到 CAMServer,無需額外登入 C&M。 能。

傳統上,該系統需要使用 IIS/ASP.NET 構建,但藉助此功能,CAMServer 可以直接處理 Kerberos 驗證。這使得使用整合的 Windows 驗證來設定 SSO 更加簡單,無需額外的伺服器(例如 IIS)。

SSO 流量

單一登入處理流程

  1. 訪問 CAM 伺服器
    使用者透過瀏覽器存取 CAMServer。存取時,會透過 POST 請求發送一個應用程式的臨時令牌。
  2. 身份驗證請求
    驗證暫存令牌後,CAMServer 會向瀏覽器要求 Windows 驗證(協商)。
  3. Kerberos票據獲取
    瀏覽器使用Windows登入資訊。
    從 Active Directory KDC 取得 Kerberos 服務票證。
  4. 發送 Kerberos 票據
    瀏覽器使用已取得的 Kerberos 票據。
    新增 HTTP 標頭並將訊息重新傳送到 CAMServer。
  5. 票務驗證
    CAMServer 使用 keytab 來驗證 Kerberos 票據。如果驗證成功,它會檢索票據中包含的 Kerberos 主體。
  6. LDAP 搜尋和 CAM 使用者匹配
    系統使用檢索到的 Kerberos 主體執行 LADP 搜索,從 AD 獲取用戶信息,並將其與 CAMServer 中註冊的用戶進行比較。如果找到匹配項,則允許登入。
  7. 登入完成
    CAMServer 發出登入會話,
    使用者無需顯示登入畫面即可使用 CAMServer。

如果您使用 Windows 驗證所使用的 FQDN 之外的網域名稱存取該站點,或者如果您從未加入網域的 PC 造訪該站點,則會在命令和管理伺服器 (C&M) 上執行登入驗證。

運行要求

使用此功能需要以下環境。

活動目錄環境

  • 必須建立Active Directory網域。

CAMServer

  • 終極計劃使用
  • CAMServer 必須可透過其完全限定網域名稱 (FQDN) 存取。
  • 執行 CAMServer 的 Windows 伺服器必須加入 Active Directory 網域。
    若要檢查現有 Windows Server 加入哪些網域,請前往「伺服器管理員」→按一下左側功能表中的「本機伺服器」→按一下「電腦名稱」並參考網域欄位。

使用者

  • 使用者的電腦必須加入網域,並透過該網域登入 Windows。
  • 符合 SSO 資格的使用者是指其使用者 ID 為 使用者主體名稱 (您必須預先在 CAMServer 上註冊,註冊資訊格式為 UPN(例如,user@camtest.com))

支援的瀏覽器

Windows驗證SSO可在下列瀏覽器中使用。

關於負載平衡器配置

Windows 驗證 (Kerberos) 是一種使用 HTTP 驗證標頭進行協商的驗證方法,因此 CAMServer 必須保持在 443 連接埠上執行,且負載平衡器必須是 L4 (TLS 直通)。

推薦配置

使用者 ──HTTPS──▶ L4 負載平衡器(TLS 直通) ──HTTPS──▶ CAMServer(443)

NG配置

使用者-HTTPS-▶ L7 負載平衡器(SSL 終止)-HTTP-▶ CAMServer(8080)

在L7負載平衡器中,會發生TLS終止和HTTP重新生成。
似乎很多系統不支援 Windows 身份驗證(Kerberos)協商。

施工程序

以下設定步驟將根據「設定範例」進行說明。

配置範例

  • Windows 驗證的 FQDN:https://test.chat-messenger.com
  • Active Directory 網域:camtest.com
  • 服務帳戶:cam-svc@camtest.com (CAMTEST\cam-svc)

SPN註冊概述

SPN(服務主體名稱)是在 Kerberos 驗證中唯一標識 Active Directory 上特定服務的名稱。如果您使用 FQDN 存取服務,註冊 SPN 將使用戶端能夠成功為您正在存取的服務請求 Kerberos 票證。

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

服務帳戶

為 Kerberos 驗證建立服務帳戶。雖然可以使用網域使用者帳戶建立服務帳戶,但通常建議將使用者帳戶和服務帳戶分開,以防止意外錯誤並明確密碼原則的應用範圍。OU=服務帳戶 就像,OU 使用者 Active Directory 網域控制站,凸輪服務 創建一個

如果在將 CAMServer 作為 Windows 服務啟動時指定了服務帳戶,則可以使用相同使用者。

請在您的帳戶選項中檢查以下內容。

  • 設定密碼永不過期
  • 此帳號支援 Kerberos AES 256 位元加密。

如下所述 ktpass 若要指定使用 AES256-SHA1,您需要啟用對 AES 256 位元加密的支援。如果您不指定,則預設使用 RC4,由於存在安全漏洞,RC4 將在未來被棄用。

使用服務帳戶註冊 SPN

setspn -S HTTP/test.chat-messenger.com CAMTEST\cam-svc

使用上面建立的服務帳戶註冊 SPN。

- 可以使用網域中的任何設備,但需要網域管理員權限。
・SPN 也用於 HTTPS 通信HTTP/主機名稱您必須按照以下格式註冊:

使用以下命令驗證 SPN 是否已註冊。

setspn -L CAMTEST\cam-svc

建立 keytab

若要使 CAMServer 能夠驗證 Kerberos 票證,請為服務帳戶建立 keytab 檔案。在 Active Directory 管理伺服器上執行下列命令:

ktpass /out CAMServer\config\windowsAuth\cam.keytab /princ HTTP/test.chat-messenger.com@CAMTEST.COM /mapuser CAMTEST\cam-svc /ptype KRB5_NT_PRINCIPAL /crypto AES256-SHA1 /pass "*******"

- /out:建立一個名為 windowsAuth 的資料夾,並將輸出寫入 CAMServer\config\windowsAuth\cam.keytab。
/princ: HTTP/請按 @<網域名稱(大寫)> 的格式設定。
- /pass: 中指定的密碼應該是服務帳戶的密碼。
如果變更服務帳戶密碼,則需要重新產生 keytab 檔案。

CAM伺服器設定

若要使用 Windows 驗證,請將以下內容新增至 CAMServer 設定檔 (boot.ini) 中。請根據您的環境替換每個值。

# Kerberos レルム(通常は Active Directory ドメイン名を大文字で指定)
# 例: camtest.com ドメイン → CAMTEST.COM
cam.windowsAuth.realm=CAMTEST.COM

# Windows認証を行うFQDN
cam.windowsAuth.FQDN=test.chat-messenger.com

# Kerberos KDC
# 通常は Active Directory のドメインコントローラのFQDN。ポートTCP/UDP 88 は Kerberos 標準ポートでリッスンされている
cam.windowsAuth.kdc=ad.camtest.com:88

設定互聯網選項

將 CAMServer 的 FQDN 新增到 intranet 區域。

選擇“Internet 選項”,按一下“安全性”選項卡,然後選擇“本機 Intranet”。點擊“網站”按鈕,選擇“進階”,然後新增網站 URL(https://test.chat-messenger.com)。

檢查自動登入

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

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

從使用 IIS 整合 Windows 驗證的 SSO 遷移

  1. 卸載 IIS 功能(伺服器管理員 > 管理 > 刪除角色和功能)
  2. 卸載 ASP.NET Core Hosting Bundle
  3. 服務帳戶是此帳號支援 Kerberos AES 256 位元加密。「查看
  4. 鍵盤標籤 創造
  5. 在 Internet 選項設定中,將 CAMServer 的 FQDN 新增至 Intranet 區域(如果尚未新增)。
  6.  如果負載平衡器連接到 L7 層的 CAMServer,則在 CAMServer 上放置 SSL 證書,並在 L4 層進行連線。
  • 網址をコピーしました!
目錄