慕桂英3389331
2023-08-09 16:15:46
我想在我的應用程序中自動驗證登錄到其窗口的“活動目錄用戶”。簡而言之,我希望使用 Windows 憑據對我的應用程序進行 SSO。**客戶端是 React,后端是 Java 8 和 Spring 4.1.2,Spring Security 是 3.2.5。我已經使用 spring LDAP 3.2.5 在我的應用程序中驗證并搜索“活動目錄用戶”。但用戶在使用瀏覽器時應提交用戶名和密碼。我讀過有關“集成 Windows 身份驗證”(IWA)、“Kerberos”、“NTLM”的內容。我應該使用 NTLM 而不是 LDAP 嗎???或者,我應該使用 Kerberos ???或者,我應該使用 ADFS ???我應該在活動目錄中配置任何內容嗎???**我無法在活動目錄中配置任何內容我應該以編程方式在 React 中獲取 Windows 憑據并將其發送到服務器,然后從服務器我應該將該憑據發送到 Active Directory 來驗證它嗎???我不知道,但是,我應該在“HTTP 響應”中對“HTTP 選項請求”說些什么來強制瀏覽器在下一個請求中設置 Windows 憑據嗎?謝謝您的寶貴時間。
1 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
有幾種方法可以做到這一點:
Windows 身份驗證
這對用戶來說是最好的,因為它是無縫登錄。如果該網站受信任,則瀏覽器會自動將當前登錄用戶的憑據發送到該網站。
在本例中,Web 服務器(本例中為 Tomcat)處理身份驗證并將憑據傳遞給應用程序。如果您使用 IIS 和 Windows,設置將非常簡單。但對于 Linux 上的 Tomcat,這就有點困難了。您需要設置 kerberos,這需要在域上設置 SPN(服務主體名稱)值,以便您的服務器在您的域上受到信任以進行身份驗證。在 Tomcat 8 中進行設置的完整說明如下:Windows 身份驗證操作方法
設置完成后,您的網站需要受到瀏覽器的信任。如果您的站點被識別為 Intranet 站點,那么這應該已經是正確的。如果沒有,則需要將您站點的域添加到客戶端計算機上 Internet 選項中的受信任站點。這也可以通過組策略來完成。這適用于 IE 和 Chrome。Firefox 使用自己的network.negotiate-auth.delegation-uris
設置。
表單驗證
另一種方法是使用登錄頁面詢問用戶的用戶名和密碼,然后通過 Java 應用程序代碼中的 LDAP 對其進行身份驗證。我假設您知道如何設置登錄頁面,因此您只需要知道如何驗證憑據即可。
添加回答
舉報
0/150
提交
取消