当前位置: 首页 > 知识库问答 >
问题:

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

黄修永
2023-03-14

我有一个Java桌面应用程序。我发现了很多关于web应用SSO身份验证的在线资源。我需要一个旧的学校桌面应用程序同样的东西。基本上,我需要该应用程序打开浏览器窗口,让用户根据ADF进行身份验证,然后取回令牌。

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

共有2个答案

胡劲
2023-03-14

桌面应用程序。没有浏览器。

WS-Fed和SAML是围绕浏览器重定向构建的。

为什么需要SAML?OpenID Connect/OAuth怎么样?

如果这是一个选项,请查看ADAL Java示例-Azure Active Directory身份验证库。ADFS中对OAuth的支持有限。V3.0版

另一种选择是使用主动配置文件(web服务)而不是被动配置文件(浏览器)。

但这是WS-Trust,不是SAML。

满和安
2023-03-14

我找到了答案。

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

注:这不是一项容易的任务。把所有的东西都组装起来大约需要一周的时间。

 类似资料:
  • 我们现在正在进行的项目是使用SAML令牌通过ADFS进行单点登录<此项目应遵循以下基本规则: 1。代理使用其凭据登录到windows 2。代理登录到web应用程序(依赖方) 3。web应用程序应重定向到ADFS中的STS(Active Directory是身份提供程序),并使用代理在其windows身份验证(无缝身份验证)中使用的凭据登录 4。因此,不应显示STS登录页面,并且应验证用户身份。之后

  • 问题内容: 我正在使用以下过滤器在我的Web应用程序中启用NTLM身份验证。 我得到Windows浏览器身份验证提示。运行正常。除了以下事实外- 我无法确定身份验证是成功还是失败! * 两种情况均无错误。 *在每种情况下都将打印用户名(正确或相反),工作站等。 web.xml很简单: 问题答案: 您收到的是Type 3消息,但是除了打印出详细信息之外,您什么都没做。此时,您需要验证客户的响应,并发

  • 我应该在Jupyter中实现SAML身份验证(Okta)。我试过搜索,但什么也没找到。也许有人知道答案。谢谢你的帮助。

  • 问题内容: 我想在我的Java应用程序中使用Windows NTLM认证来透明地认证Intranet用户。如果使用浏览器(单点登录),用户将不会注意到任何身份验证。 我发现了一些具有NTLM支持的库,但是不知道要使用哪个库: http://spnego.sourceforge.net/ http://sourceforge.net/projects/ntlmv2auth/ http://jcifs

  • 我需要编写一个基于桌面的客户端应用程序,它在进行基于SAML的SSO身份验证后对SharePoint服务器进行一些Web服务方法调用。 我发现SAML SSO主要用于处理所有细节的浏览器。根据这个问题,SAML 2.0中似乎有一种技术称为ECP,专门用于启用非基于浏览器的客户端。 然而,SharePoint 2010/2013等一些应用程序仅支持SAML 1.1;在这种情况下可以使用什么?

  • 问题内容: 我有一个旧版应用程序,该应用程序通过网络异步接收用户名/密码请求。由于我已经将用户名和密码存储为变量,因此在Linux(Debian 6)上通过PAM进行身份验证的最佳方法是什么? 我尝试编写自己的对话功能,但不确定将密码输入其中的最佳方法。我已经考虑过将其存储在appdata中,并从pam_conv结构中引用它,但是几乎没有关于该操作的文档。 有没有一种简单的方法来对用户进行身份验证