对于我们的客户之一,我需要编写自定义身份验证源模块。我已经将SimpleSAMLphp设置为使用LDAP,SQLauth等各种身份验证的Idp。所有这些身份验证都有一个共同之处,那就是它们使用登录表单并对sspmod_core_Auth_UserPassBase
类进行身份验证。这意味着将是用户名和密码等SimpleSAMLphp不带密码的自定义身份验证
的特殊情况在这里登录格式如下:
的SAML安装(IDP)是企业网络内部。如果用户(在该网络内/通过AD认证)访问该网络内的主机,用户名将被自动注入到其浏览器中,并且可通过$_SERVER['PHP_AUTH_USER']
获得,并且我们保证用户已经被“验证” 。
这意味着我们不必“认证”用户了。我们不必显示登录表单,只需将该用户标记为已认证即可。
现在我有点卡住了,因为对我的理解来说,写一个自己的authsource会延长默认的UserPassBase
类有点“过量”。我将不得不处理空密码,并自动从登录表格等转发/张贴等。
我想有一个更好的方法来处理。流程将非常简单:
SP重定向到IdP。 IdP的“登录页面”为PHP_AUTH_USER
(没有输出,如登录表单),验证用户(没有进一步检查),并按照预期方式重定向,如果用户被正确检测到。如果无法找到PHP_AUTH_USER
,用户将被重定向到某种错误页面。
任何想法如何解决这个正确的方法?我想我将不得不编写自己的全新的authsource类来扩展基类SimpleSAML_Auth_Source
类?也许有人有这样的例子,在我要重新发明轮子之前!?
正是!谢谢! – Marco