PHP:使用 HTTP Digest Authentication 响应向 LDAP 进行身份验证
Posted
技术标签:
【中文标题】PHP:使用 HTTP Digest Authentication 响应向 LDAP 进行身份验证【英文标题】:PHP: Use HTTP Digest Authentication response to authenticate with LDAP 【发布时间】:2017-05-26 08:19:24 【问题描述】:能否告诉我是否可以使用 HTTP Digest Authentication 响应通过 LDAP 对用户进行身份验证?可以让我看一个 php 的例子吗?
【问题讨论】:
语法改进。 【参考方案1】:请务必注意,即使您使用的是摘要式身份验证,也完全取决于后端系统来验证凭据。无论是存储您的有效凭据集的后端数据库、RADIUS 服务器、LDAP 等都无关紧要。在 HTTP 级别上,服务器和客户端将交换这些标头。
https://leonjza.github.io/blog/2013/06/25/dtob.py-digest-to-basic-authentication-a-simple-example-of-a-authentication-downgrade-attack/
【讨论】:
【参考方案2】:如 PHP 文档中所述:http://php.net/manual/en/features.http-auth.php
<?php
if (!isset($_SERVER['PHP_AUTH_USER']))
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button';
exit;
else
echo "<p>Hello $_SERVER['PHP_AUTH_USER'].</p>";
echo "<p>You entered $_SERVER['PHP_AUTH_PW'] as your password.</p>";
?>
当您拥有用户/密码后,您只需要制作您的 LDAP 代码即可使用这些凭据在您的 LDAP 上验证用户。
另一种方法是使用 HTTP 服务器,该服务器可以使用 LDAP 后端对用户进行身份验证。例如,请参阅 Apache 的此文档:https://httpd.apache.org/docs/2.4/mod/mod_authnz_ldap.html
【讨论】:
以上是关于PHP:使用 HTTP Digest Authentication 响应向 LDAP 进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章
使用 net-http-digest_auth 的未知算法 MD5