繁体   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