java - SAML SSO 客户端、测试模拟器 SAML 提供程序/服务器

标签 java single-sign-on saml

SAML、SSO 是我项目中的新学习内容。我没有足够的时间进行试验来找到正确的工具/API。请求您帮忙。

我需要实现 SAML 客户端(在 Java 上),它必须能够发送 SAML 断言并从 SAML 提供者/服务器接收 SAML 响应。 我应该使用哪个 Java API 用 Ja​​va 编写 SAML 客户端?

我们的客户已经拥有 SAML 响应器/服务器,用于接收 SAML 请求并发送带有用户配置文件和其他信息的 SAML 响应。但我们需要编写测试模拟器SAML响应器/服务器。我使用过 Apache 和 Tomcat 服务器。 我应该使用哪些服务器/API 来实现此测试模拟器 SAML 响应器/服务器?

最佳答案

我们使用 OpenSAML,它非常灵活并且不难学习/使用。我用它来编写服务提供程序(包括一些客户端自定义版本)、处理请求和未经请求的 SAMLResponse XML、将 AuthnRequest 发送到身份提供程序、调用 IdP AttributeQuery 服务以及模拟身份提供程序 SAMLResponse XML(用于测试)。

根据您的描述,我认为您将编写身份提供者部分?如果您只是执行简单的未经请求的 SAMLResponse XML,那么 OpenSAML 对您来说可能有点大材小用了。如果您的 XML 消息大部分相同,只有少数内容元素在不同请求之间发生变化,那么您只需使用简单的字符串模板并填充少数变化的元素,无需特殊的 SAML 库。

你说的一件事让我很困惑:

our customer already has SAML responder/Server which receives the SAML request and sends the SAML response with the user profiles

如果他们是服务提供商并且这是 SAML SSO,那么他们会通过浏览器请求接收 SAMLResponse XML,并通过在用户浏览器中显示内容来进行响应。他们不会向您发送包含用户个人资料的回复。您可能没有时间进行实验,但我鼓励您花一点时间阅读 SAML 文档 - 即使只是阅读 SAMLOverview应该给你更多的基础。

关于java - SAML SSO 客户端、测试模拟器 SAML 提供程序/服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4291618/

相关文章:

Java 8 无法在 FIPS 中加载其 cacerts。异常 "no such provider: SunEC"

java - 当没有 Internet 连接时在 GridView 中返回 NullPointerException 时出现问题

java - 如何在 Java 中比较字符串?

amazon-web-services - AWS SSO和AWS Cognito有什么区别?

java - 身份验证重定向后如何返回 Jersey MVC Viewable?

SAML 和 Office 365 联盟

java - Horizo​​ntalScrollView 中的捕捉效果

java - 我在 CAS jar 中找不到 ProxyTicketReceptor

single-sign-on - ADFS、WIF、WS Federation、SAML 和 STS 之间有什么区别?

Azure B2C 错误 : A claim could not be found for lookup claim with id \""objectId\"" defined in technical profile