簡體   English   中英

Java桌面應用程序的ADFS / SAML身份驗證

[英]ADFS/SAML authentication for Java desktop app

我有一個Java桌面應用程序。 我找到了很多關於網絡應用程序的SSO身份驗證的在線資源。 對於舊式學校桌面應用,我需要同樣的東西。 基本上,我需要應用程序打開瀏覽器窗口,讓用戶對ADFS進行身份驗證,然后獲取令牌。

如何使用ADFS / SAML添加SSO身份驗證?

我找到了答案。

  1. 首先,桌面應用程序需要顯示瀏覽器窗口。 使用JavaFX WebView可以輕松實現這一點。 我已經使用JavaFX WebView成功測試了Google和ADFS登錄。 注意:如果使用ADFS,則必須設置ADFS以使用基於表單的身份驗證。
  2. 需要構建幫助程序Web服務。 Web服務將提供由任何聯合身份驗證機制(SAML2,OAuth等)保護的方法。 我無法用Java做到這一點。 有一些像JOSSO這樣的解決方案,但它們非常繁瑣或嚴重缺乏。 但是,C#對聯合身份驗證具有出色的支持,這使其成為此任務的絕佳選擇。
  3. 當用戶需要進行身份驗證時,桌面應用程序會顯示自動調用上述方法的瀏覽器窗口。 聯合身份驗證握手后,瀏覽器將能夠訪問該方法。 此方法告訴桌面應用程序是否允許主叫用戶訪問。
  4. 最后一步是關閉瀏覽器窗口並登錄用戶。

注意:這不是一件容易的事。 把所有東西放在一起需要大約一個星期的工作量。

桌面應用。 沒有瀏覽器。

WS-Fed和SAML是圍繞瀏覽器重定向構建的。

你為什么需要SAML? 那么OpenID Connect / OAuth呢?

如果這是一個選項,請查看ADAL Java示例 - Azure Active Directory身份驗證庫 ADFS中的OAuth支持有限。 V3.0

您的另一種選擇是使用活動配置文件(Web服務)而不是被動(瀏覽器)。

但那是WS-Trust而不是SAML。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM