2

我在 php 中创建了一个登录表单,现在我想使用 Kerberos 对其进行身份验证。有谁知道该怎么做?我已经尝试了一段时间,但没有任何成功。

到目前为止我尝试过的事情:

1. KADM5 PHP 模块。我从这个链接阅读了他们的手册。我仍然对安装步骤感到困惑。它说使用以下命令安装 PECL 扩展:

$pecl install pecl_http

但它总是显示这个错误:

No releases available for package "pecl.php.net/pecl_http"
install failed

我已经安装了手册中列出的所有软件包。

2. LDAP:PHP 模块。这是我在 PHP 中尝试过的代码:

<?php  

    $ldaphost = <servername>;  
    $ldapport = 636;  
    $ds = ldap_connect($ldaphost, $ldapport) or die("Could not connect to ".$ldaphost);

    echo $ds;  

    if($ds) {

        ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);  
        $username = $_GET["username"];  
        $upasswd = $_GET["password"];  
        $ldapbind = ldap_bind($ds, $username, $upasswd);  

        if($ldapbind) {
            print "Congratulations!";
        } else {
            print "Access Denied!";
        }

    } 

?>

当我运行这个脚本时,我得到这个错误:

资源 id #4PHP 警告:ldap_bind():无法绑定到服务器:无法在第 15 行的 /var/www/joomla/scripts/testing.php 中联系 LDAP 服务器
拒绝访问!

4

1 回答 1

1

据我记得,K5ADM 没有“登录”功能,因此您可以尝试使用“真正的”kerberos 模块 http://savannah.nongnu.org/projects/phpkrb5/

我不确定当前版本是否可以编译。几年前我做过,我确实需要应用下面的补丁,并且没有使用makefile但是

cc -DCOMPILE_DL_KRB5 -fpic -I。-I/usr/include/php -I/usr/include/php/main -I/usr/include/php/Zend -I/usr/include/php/TSRM -c -o phpkrb5.o phpkrb5.c cc -共享 -rdynamic -o phpkrb5.so phpkrb5.o

Index: phpkrb5.c
===================================================================
RCS file: /sources/phpkrb5/phpkrb5/phpkrb5.c,v
retrieving revision 1.1
diff -r1.1 phpkrb5.c
23,24c23,24
< #include "php.h"
< #include "php_krb5.h"
---
> #include "main/php.h"
> #include "phpkrb5.h"
于 2012-08-15T14:10:17.097 回答