如何设置 Web 应用程序以在 JAVA 中使用 ADFS /SAML/WS-*?

Posted

技术标签:

【中文标题】如何设置 Web 应用程序以在 JAVA 中使用 ADFS /SAML/WS-*?【英文标题】:How can I setup a web Application to use ADFS /SAML/WS-* in JAVA? 【发布时间】:2013-06-06 01:04:06 【问题描述】:

我有一对使用 Wicket-1.5.xJava 1.6.X 编写的 Web 应用程序 我工作的另一个组织维护一个公共登录门户我的 Web 应用程序要与之集成,通过 ADFS/SAML 令牌提供用户身份。

他们实际上提供了一个示例应用程序供我查看,但它是用 ASP.net 编写的。执行身份检查的应用程序部分正在使用 Windows Identity Foundation 类,因此不适合。在将 ASP.net 代码转换为 Java 代码进行网络搜索时,我找到了Grasshopper,但我有 VS 2010,它“需要”2008 并且不会安装。

我创建了一个简单的测试页面,显示了它可以找到的所有 cookie,当我得到:JSESSIONID、utma、utmz、utmb、utmc 时,我收到的所有 cookie 都不像 SAML 令牌。

我已尝试运行其他组织示例的托管版本。 Sample.domain.com cookie 甚至在 AFTER 样本应用程序安全页面加载之前都不存在。那么,如果在我的页面加载后才创建 cookie,我如何获取身份信息?

这就是 WS-Federation 的用武之地吗?

【问题讨论】:

【参考方案1】:

我最终确实解决了我的问题。我最终将Apache CXF Fediz 与我的应用程序集成。它仍然相对较新,但它可以工作,并且经过一些调整就能满足我的需求。

【讨论】:

【参考方案2】:

WIF 使用 WS-Federation,据我所知没有 Java 等效项。

但是,您可以使用 SAML。参考:SAML : A SAML stack。

【讨论】:

我最近才发现Fediz 项目。它将 WS-Federation 添加到 Apache CXF。

以上是关于如何设置 Web 应用程序以在 JAVA 中使用 ADFS /SAML/WS-*?的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个 .INI 文件以在 Java 中存储一些设置?

如何在 Java 应用程序中设置 H2 嵌入式数据库以在小型网络中使用?

如何将值设置为可选的 QueryParam 以在 java 中调用 rest api

如何设置 Kafka 连接器以在 Debezium 中使用自定义转换?

设置数组以在 Android 应用中保存声音

如何在 Mac OS 上设置 Appium 以在 Android 和 iOS 设备上运行来自 JAVA 类的自动化测试