Java桌面应用程序的ADFS / SAML身份验证

我有一个Java桌面应用程序.我找到了很多关于网络应用程序的SSO身份验证的在线资源.对于旧式学校桌面应用,我需要同样的东西.基本上,我需要应用程序打开浏览器窗口,让用户对ADFS进行身份验证,然后获取令牌.

如何使用ADFS / SAML添加SSO身份验证?

解决方法:

我找到了答案.

>首先,桌面应用程序需要显示浏览器窗口.使用JavaFX WebView可以轻松实现这一点.我已经使用JavaFX WebView成功测试了Google和ADFS登录.注意:如果使用ADFS,则必须设置ADFS以使用基于表单的身份验证.
>需要构建一个帮助Web服务. Web服务将提供由任何联合身份验证机制(SAML2,OAuth等)保护的方法.我无法用Java做到这一点.有一些像JOSSO这样的解决方案,但它们非常繁琐或严重缺乏.但是,C#对联合身份验证具有出色的支持,这使其成为此任务的绝佳选择.
>当用户需要进行身份验证时,桌面应用程序会显示自动调用上述方法的浏览器窗口.联合身份验证握手后,浏览器将能够访问该方法.此方法告诉桌面应用程序是否允许主叫用户访问.
>最后一步是关闭浏览器窗口并登录用户.

注意:这不是一件容易的事.把所有东西放在一起需要大约一个星期的工作量.

上一篇:SpringBoot+MybatisPlus+Mysql+Sharding-JDBC分库分表实践


下一篇:java – 使用Spring SAML作为IDP而不是SP