php - 如何将我网站的身份验证转换为 SAML 身份验证提供程序?
问题描述
我正在使用现有的遗留 php 身份验证解决方案,其工作方式如下:
- 用户输入他们的凭据
- 代码检查 LDAP 进行身份验证
- 如果 LDAP 身份验证成功,则将用户名传递给数据库查询以检索权限
- 如果 LDAP 身份验证不成功,则会检查 SQL DB 是否使用相同的凭据进行身份验证
- 如果 SQL 身份验证成功,则检索权限
- 如果 SQL 身份验证不成功,请通知用户。
这是因为我们的许多用户是员工,而且许多是客户。
我们现在有一个二级 Web 提供商要求通过 SAML 提供身份验证。该请求是将我们现有的身份验证方法转换为 SAML 身份验证源。我一直在尝试在 SimpleSAMLPhp 中制作自定义模块,但我没有任何运气。缺少用于配置像这样的外部身份验证源的文档,并且我现有的代码基本上将 POST 变量作为参数输入,而我无法将它们硬塞在一起。如果我真的让它工作,我很难让它工作,这让我对系统的整体安全性感到紧张。
这个问题有什么更好的解决方案?
解决方案
根据您的问题,我的印象是您对 SAML 协议不是很熟悉。
我现在所能做的就是给你一些开始的建议。
第一:了解协议。尝试了解 SSO 流程并区分贵公司中哪些组件充当“服务提供者”和“身份提供者”
第二:了解集成的范围。尝试回答以下问题: - 应用程序是在内部网络还是外部网络中工作?- 谁有访问权限?- 贵公司的其他应用程序是否已经完成了 SAML 身份验证?- LDAP 服务器是否已经由身份提供者控制,或者您必须实施新的?
一旦你熟悉了,你就可以开始考虑开发了。有许多现有的解决方案和库可用,因此一旦您了解协议如何工作的概念,继续下去就会容易得多。
我很乐意在您的旅途中为您提供帮助。这项任务将花费您很多精力,因此请做好准备。