晨霧中,一座木橋跨過平靜的水面,通向對岸。

產品筆記

不保管密碼的整合

密碼已經保存在企業的 Active Directory 中。如何在不複製密碼雜湊、也不開放新的外部連入端點的情況下,加入現代登入方式?Authrim Relay 就是為此設計的。

從無法改變的前提出發

員工帳戶保存在Active Directory中。密碼策略、有效期和離職停用,也一直由它管理。這套系統已經運作多年。

現在想加入通行金鑰、整理多因素認證、為更多SaaS提供SSO。目標明確,但第一步總會遇到同一個問題:在哪裡驗證密碼?

有些方案把密碼雜湊同步到雲端,有些則請內部目錄驗證。選擇時需要確認憑證放在哪裡、由哪一側建立連接,以及誰負責維護這條路徑。

WordWarden讓LDAP/AD繼續負責驗證,同時提供連接路徑選擇。對於不想公開新入站端點的組織,Authrim Relay使用出站連接。

WordWarden負責什麼

Authrim WordWarden是一個目錄連接器。它是部署在LDAP/AD附近的小服務,接收使用者名稱和密碼,向目錄查詢,再回傳驗證結果。

登入介面、工作階段、通行金鑰、電子郵件驗證碼、對應用程式提供的身分聯盟服務、稽核關聯和身分映射由Authrim管理。WordWarden只在目錄附近執行驗證

連接方向不同,需要設定和維護的網路元件也不同。

誰向誰建立連接

WordWarden有三種連接方式,區別在於組織網路是否需要公開入站端點。

組織內部網路 Authrim(雲端) 邊界 Direct HTTPS WordWarden 需要公開端點 Authrim 由Authrim連接公開的接收端點 Cloudflare Tunnel WordWarden + cloudflared 主機不直接公開 Authrim cloudflared向外連接,經由Cloudflare隧道 Authrim Relay WordWarden 僅建立出站連接 Authrim Relay(Durable Object) WordWarden向外連接,無需入站端點
箭頭表示誰發起連接。Direct HTTPS由Authrim連接公開端點。Tunnel和Relay都從內部向外連接:前者由獨立的cloudflared程序維持,後者由WordWarden自身維持。

哪一種適合自己的環境

如果新部署不希望增加入站存取,可以先考慮Relay。已有的公開基礎設施或隧道也有利用價值。以下是選擇方案的例子,並非實際客戶部署案例。

Authrim Relay:保留內部AD,不增加外部入站存取

例如,總部執行AD、公開新伺服器需要額外審核的企業;或者不允許外部連接校園LDAP網路的大學。WordWarden主動連接Authrim,無需在內部網路新增公開入站連接埠。

不需要新公開端點,也不需要獨立隧道程序。前提是允許WebSocket出站通信,並繼續監控WordWarden及其連接。如果網路禁止一切外部通信,Relay也無法使用。

Cloudflare Tunnel:沿用已有隧道維運

如果組織已經透過Cloudflare Tunnel發佈內部工具,並有團隊負責cloudflared更新和路由,可以把WordWarden納入同樣的流程,無需新增入站連接埠。

需要設定讓Authrim請求到達連接器的主機名稱與路徑,並維護隧道。內部主機不直接接收入站連接,但請求會經由Cloudflare的路徑到達。

Direct HTTPS:沿用現有API公開基礎設施

企業、大學或研究機構可能已有負責DMZ和反向代理的團隊。為Authrim提供可存取的HTTPS端點,就能沿用現有憑證管理、存取日誌和監控流程。

無需維持額外的隧道或Relay連接。相應地,組織需要允許入站路徑,並負責公開端點的保護與維護。公開的是連接器的HTTPS介面,不是把LDAP/AD連接埠直接暴露到網際網路。

無論哪種方式,都要在能夠存取LDAP/AD的位置執行WordWarden。並不是學術機構就必須選某一種,而是根據現有基礎設施和網路策略來選擇。

Authrim Relay:從內部發起的連接

Relay模式下,WordWarden從組織內部透過WebSocket連接Authrim。WebSocket會保持通信路徑,讓雙方都能通過它傳送訊息。

WordWarden保持連接並等待。有人登入時,Authrim透過同一路徑發出“請驗證這個使用者”的請求,WordWarden查詢內部目錄,再回傳結果。

這就像從組織內部撥出電話後保持通話,對方也可以開口說話。每次請求都不需要從外部重新連接內部網路。

這樣,目錄所在網路不必為此公開URL,也減少了新公開主機名稱、憑證和WAF的管理。仍需允許出站連接、維護WordWarden並監控連接狀態。

技術補充:WebSocket與公開入站連接埠有什麼不同

區別在於由誰首先建立連接。Direct HTTPS需要組織提供Authrim可存取的端點;Relay則由內部WordWarden向Authrim建立加密WebSocket連接(wss)。

常見的有狀態防火牆或NAT會追蹤內部發起的連接,並允許該連接的回傳流量。因此,WordWarden無需公開接收外部新連接的連接埠,也無需設定連接埠轉發,就能收到驗證請求。

這並不意味著通信不使用連接埠。通常wss使用目標端的TCP 443連接埠。防火牆或代理需要允許到Relay的出站存取和持續WebSocket連接。斷線期間無法透過該路徑接收請求,因此也需要監控。

減少外部新連接入口,不代表已建立的路徑不會收到驗證請求。仍然需要認證通信方,並驗證收到的請求。

參考:WebSocket通訊協定(RFC 6455)

出站連接也需要認證對方。Relay同時檢查連接器身分與設定的目標。

技術補充:透過HMAC認證連接方

WordWarden對短期挑戰回傳HMAC回應,對包含挑戰ID和nonce的字串簽名,並檢查目標URL中的租戶ID和連接器ID是否與自身設定一致。

三種連接方式都必須使用HMAC。Relay減少的是入站暴露面,並不能省略連接器認證或秘密資訊管理。

究竟有哪些資訊跨越邊界

這一點需要說清楚:並不是“密碼不會離開內部網路”。

使用者在登入介面輸入密碼後,密碼會經過Authrim。準確的表述是“Authrim與WordWarden不保存密碼”,而不是“密碼不會離開組織”。

組織內部網路 Authrim(雲端) 密碼向左傳遞,途中不保存 LDAP / AD 密碼的權威來源 WordWarden Authrim 使用者 回傳驗證結果與允許的屬性 保存 密碼的權威來源 不保存(WordWarden / Authrim) 密碼或密碼雜湊 包括從舊系統遷入的雜湊 Authrim保存工作階段、資料與通行金鑰狀態
文件明確規定:Authrim不匯入、雜湊、重新雜湊或持久保存密碼憑證,也包括舊系統中的密碼雜湊。

回傳的資訊也有限制

驗證成功後,Authrim得到結果,以及請求屬性中連接器本地允許列表准許的部分。不是請求方決定能取什麼,而是目錄一側決定傳出什麼

因此,僅修改Authrim一側的設定,無法擴大從內部網路獲取的屬性範圍。

密碼是過渡的橋梁

這種連接是為了逐步遷移

LDAP/AD繼續作為密碼權威來源,使用者仍使用原有帳戶登入,同時逐步註冊通行金鑰。電子郵件驗證碼作為恢復路徑保留,讓認證方式轉換時登入仍可繼續。

文件也明確禁止把LDAP/AD密碼雜湊匯出到Authrim。那樣做會把遷移橋梁變成憑證副本。

正在準備公開測試版。首個目標版本是v0.1.0-beta.1

適合試點使用,面向能夠在LDAP/AD附近運作小服務,並理解目錄、網路、TLS和秘密管理邊界的組織。這不是代管目錄服務。

需要Authrim 0.3.2或更高版本,並啟用Directory Authentication與Relay。目前測試版修改設定後需要重新啟動程序。

複製憑證或開放入站連接,
並非僅有的選擇。

在目錄附近驗證,並由內部建立出站連接,就能在不複製密碼雜湊、不公開內部入站端點的情況下接入現代登入。

最終希望走向的是通行金鑰遷移。目錄連接提供了基礎,讓遷移可以在不打斷使用者登入的情況下進行。