我的应用程序使用cuba.platform作为框架,我想实现一个LoginProvider。这是关于此的一些文件:
https://doc.cuba-platform.com/manual-6.8/web_login.html?_ga=2.22865267.938183531.1520173474-888291717.1510758296
有没有简单的方法来实现上述文档的“ LoginProvider”以支持SAML?
我试图找到一些开源框架,但是很难找到关于该主题的优秀教程或文档。
那么,如何实现此LoginProvider?
最佳答案
SAML2是一个相当简单的流程,LoginProvider必须通过查看图表来处理它。从页面:
login()-对用户进行身份验证,启动会话并更改状态
连接的
因此,在调用login()
时,您应该已经为用户拥有SAML属性。您需要执行以下操作,而不是使用LoginProvider的标准用户名/密码流(按该页面显示的内容):
找出与该用户相关联的IdP,即获取该IdP的entityID
从其SAML元数据中为实体ID加载SSO端点
使用SAMLRequest将浏览器重定向到SSO端点
在您的LoginProvider处接收重定向的浏览器以获取SAMLResponse
从SAMLResponse解析SAML属性login()
关于java - 如何使用SAML在Java中实现SSO?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49097345/