3

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

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

提前致谢。

4

3 回答 3

3

如果您使用的是 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 设置。

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

于 2010-02-20T07:00:11.500 回答
2

不是免费软件解决方案 - 谷歌“Plexcel”关键字

于 2009-09-07T15:02:07.560 回答
1

PHP 有一个 krb5 模块。它有一个PECL 条目,虽然还没有包装。你可以在这里找到更多关于它的信息:

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

于 2013-05-07T19:25:01.843 回答