1

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

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

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

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

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

4

1 回答 1

1

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

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

因此,在login()调用时,您应该拥有用户的 SAML 属性。而不是 LoginProvider 的标准用户名/密码流程(根据该页面所说),您需要执行以下操作:

  • 找出用户关联的IdP,即获取IdP的entityID
  • 从实体 ID 的 SAML 元数据加载 SSO 端点
  • 使用 SAMLRequest 将浏览器重定向到 SSO 端点
  • 在您的 LoginProvider 处接收重定向的浏览器以获取 SAMLResponse
  • 从 SAMLResponse 解析 SAML 属性
  • login()
于 2018-03-10T12:57:55.093 回答