2012-08-14 41 views
2

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

我到目前为止试过的东西:

1. KADM5 PHP模块。我从this链接阅读他们的手册。我仍然在安装步骤。它说,安装使用该命令的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!"; 
     } 

    } 

?> 

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

Resource id #4PHP Warning: ldap_bind(): Unable to bind to server: Can't contact LDAP server in /var/www/joomla/scripts/testing.php on line 15
Access Denied!

+0

你为什么浪费时间?使用类似'mod_auth_kerb'的东西。 – 2012-08-14 20:34:28

回答

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 -shared -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"