【问题标题】:PHP - How to use Curl with KerberosPHP - 如何将 Curl 与 Kerberos 一起使用
【发布时间】:2014-01-06 17:15:06
【问题描述】:

我正在尝试使用 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

我该怎么做?

【问题讨论】:

    标签: php linux curl kerberos spnego


    【解决方案1】:

    首先获取一个新版本的 curl,检查你的 Kerberos 版本。所有最近的版本都本机支持 SPNEGO,即,一个小补丁和 curl 将与 SPNEGO 一起工作,无需额外的软件。

    让事情顺利进行:

    1. 下载编译curl和libcurl
    2. 安装它,例如/usr/本地
    3. 先直接试试curl
    4. 下载一个新版本的 PHP 并用 --with-curl[=DIR] 编译它,见1, 2
    5. 安装它
    6. 享受

    这里有一些警告:

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

    【讨论】:

    • 好吧,换个新版本的cUrl是个好办法,但是怎么在php中使用呢?谢谢
    【解决方案2】:

    补丁 micheal 正在谈论一些编码(更改 curl 源代码)。如果您不想这样做,请使用 fbopenssl 库并链接 curl 反对它。之后

    SPNEGO 是的

    将是帮助版本中的标志。

    请注意,您的 curl 版本不支持 keytab、用户名密码验证或凭证缓存模式。如果你想用我的 curl 叉子(虽然这个有 Micheal 的补丁):-

    github.com/Khalian/CURL
    

    【讨论】:

      猜你喜欢
      • 2014-06-29
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 2016-06-26
      • 2016-02-14
      • 1970-01-01
      • 2012-10-24
      相关资源
      最近更新 更多