PHP - 如何将Curl与Kerberos一起使用

时间:2013-12-18 13:33:25

标签: php linux curl kerberos spnego

我正在尝试使用curl进行一些操作,但我必须工作的网站使用Kerberos身份验证。因此,我必须启用curl的SPNEGO功能,默认情况下禁用该功能。

这是我的phpinfo的摘录:

cURL support    enabled
cURL Information    7.19.7
Age 3
Features
AsynchDNS   No
Debug   No
GSS-Negotiate   Yes
IDN Yes
IPv6    Yes
Largefile   Yes
NTLM    Yes
SPNEGO  No
SSL Yes
SSPI    No
krb4    No
libz    Yes
CharConv    No
Protocols   tftp, ftp, telnet, dict, ldap, ldaps, http, file, https, ftps, scp, sftp
Host    x86_64-redhat-linux-gnu
SSL Version NSS/3.13.1.0
ZLib Version    1.2.3
libSSH Version  libssh2/1.2.2

我该怎么做?

2 个答案:

答案 0 :(得分:0)

首先获取curl的新版本,检查您的Kerberos版本。所有最新版本本身都支持SPNEGO,即一个小补丁和卷曲将与没有其他软件的SPNEGO一起使用。

让事情奏效:

  1. 下载并编译curl和libcurl
  2. 安装它,例如的/ usr /本地
  3. 先试试卷曲
  4. 下载新版本的PHP并使用--with-curl [= DIR]进行编译,请参阅12
  5. 安装
  6. 享受
  7. 这里有几点需要注意:

    1. 首先,curl需要按照之前的描述进行修补。
    2. 不幸的是,PHP静态链接到curl(libcurl.a,参见[2]),这意味着除非使用新的重新编译PHP,否则无法切换到新的curl版本。也许这只是一种人为限制。

答案 1 :(得分:0)

补丁micheal正在谈论一些编码(改变卷曲源代码)。如果您不希望这样做,请使用fbopenssl库并链接curl。之后

SPNEGO是

将是帮助版本中的标志。

请注意,您的curl版本不支持keytabs,用户名密码验证或凭据缓存模式。如果你想要那个使用我的卷曲叉(虽然这一个剂量有Micheal的补丁): -

github.com/Khalian/CURL