【问题标题】:PHP Active Directory authentication with Kerberos使用 Kerberos 进行 PHP Active Directory 身份验证
【发布时间】:2023-03-27 23:28:01
【问题描述】:

我目前正在将 CMS(用 PHP 开发)身份验证与 Active Directory 集成。这个特定的 Active Directory 只允许通过 Kerberos 或 ldaps:// 进行身份验证(但最后一个不是最需要的,因为我必须使用绝对路径)。

我一直在网上搜索有关 PHP AD Kerberos 身份验证的任何信息,但一无所获。谁能指出我正确的方向?

提前致谢。

【问题讨论】:

    标签: php authentication active-directory kerberos


    【解决方案1】:

    如果您使用 Active Directory,您的网络服务器可能是 IIS,它具有内置的 kerberos*.. 然后让浏览器和网络服务器处理身份验证并使用一些 PHP,例如:

    $user = isset($_SERVER['AUTH_USER']) ? $_SERVER['AUTH_USER'] :假; if((false === $user) 或 ('' == $user)){ //转移到错误的密码页面.. //MSIE 通常会尝试 3 次,Kerb/NTLM/Plain //如果为 NTLM 配置,FF 只会尝试 NTLM/Plain //Chrome .. 根本不能用这个.. 不是我发现的。 //如果使用Apache本地测试,用户将是0 }

    现在您可以使用 Kerberos 进行 SSO,非常棒。

    *:称为“集成 Windows 身份验证”http://support.microsoft.com/kb/324274,必须通过将“安全区域”设置为“本地 Intranet”在浏览器中启用。如果 IIS 框实际上位于本地 Intranet 上,则可能会发生这种情况。但它取决于 SPN 和域、用户框和 IIS 框以及任何信任关系。如果它位于具有相同域名/机器名的单个域上,它应该可以工作。如果您正在聚集或任何有趣的事情,请期待严重的头痛,而不仅仅是正常的头痛。如果您觉得需要,您可以编写脚本/GPO IE 设置。

    希望您问的是其他问题.. 如果我祈祷您没有实现此功能,它会导致每个请求的整个身份验证过程.. 结果会减慢每个页面的加载速度.. 无论如何您实施了多少聚合/黑客/解决方法.. 这只是一个坏主意,但是一旦您开始或告诉经理它,他们真的很喜欢它,因为它使他们不必再次登录.. 哦,他们仍然会抱怨速度,但是..

    【讨论】:

      【解决方案2】:

      不是免费软件解决方案 - google by 'Plexcel' 关键字

      【讨论】:

        【解决方案3】:

        有一个用于 PHP 的 krb5 模块。它有一个PECL entry,虽然还没有包装。您可以在此处了解更多信息:

        http://mbechler.eenterphace.org/blog/index.php?/archives/12-php_krb5-releases.html

        【讨论】:

          最近更新 更多