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 进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

PHP调用OCX控件的具体方法

使用 net-http-digest_auth 的未知算法 MD5

PHP Digest/Basic Auth 默认窗口外观

在 PHP curl 请求中使用 Auth Digest 标头变量

Symfony http_digest 键是啥?

具有单向加密密码的 HTTP Digest Auth