如何使用SAML在Java中实现SSO?

时间:2018-03-04 16:04:39

标签: java login single-sign-on saml cuba-platform

我的应用程序使用cuba.platform作为框架,我想实现一个LoginProvider。以下是一些关于此的文档:

https://doc.cuba-platform.com/manual-6.8/web_login.html?_ga=2.22865267.938183531.1520173474-888291717.1510758296

是否有一种简单的方法可以实现上述文档的“LoginProvider”以支持SAML?

我试图找到一些开源框架,但很难找到关于这个主题的好教程或好文档。

那么,我如何实现这个LoginProvider?

1 个答案:

答案 0 :(得分:0)

SAML2是一个相当简单的流程,LoginProvider必须在查看图表时处理它。从页面:

  

login() - 对用户进行身份验证,启动会话并更改状态   连接

因此,在调用login()时,您应该拥有该用户的SAML属性。而不是LoginProvider的标准用户名/密码流(通过该页面所示),您需要这样做:

  • 找出用户与哪个IdP相关联,即获取IdP的entityID
  • 从其SAML元数据
  • 加载entityID的SSO端点
  • 使用SAMLRequest将浏览器重定向到SSO端点
  • 在LoginProvider上接收重定向的浏览器以获取SAMLResponse
  • 解析SAMLResponse
  • 中的SAML属性
  • login()