PHP – Cómo usar Curl con Kerberos

Estoy tratando de hacer algunas operaciones con curl, pero el sitio web donde tengo que trabajar utiliza la autenticación Kerberos. En consecuencia, tengo que habilitar la función SPNEGO de curl que está deshabilitada de forma predeterminada.

Este es el extracto de mi 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 

¿Cómo puedo hacer esto?

Obtenga una nueva versión de curl primero, verifique su versión de Kerberos. Todas las versiones recientes son compatibles con SPNEGO de forma nativa, es decir, un pequeño parche y curl funcionará felizmente con SPNEGO sin software adicional.

Hacer que las cosas funcionen:

  1. Descargar y comstackr curl y libcurl
  2. Instalarlo, por ejemplo, / usr / local
  3. Pruebe curl directamente primero
  4. Descargue una versión nueva de PHP y compílela con –with-curl [= DIR], consulte 1 , 2
  5. Instalarlo
  6. Disfrutar

Aquí algunas advertencias:

  1. En primer lugar, curl debe parchearse como se describió anteriormente.
  2. Desafortunadamente, PHP está vinculado estáticamente a curl (libcurl.a, ver [2]), esto significa que no puedes cambiar a una nueva versión curl a menos que recompilemos PHP con el nuevo. Tal vez esto es solo una limitatina artificial.

El parche micheal está hablando de un poco de encoding (cambio del código fuente del curl). En el caso de que no desee hacer eso, use la biblioteca fbopenssl y enlace el curl con eso. Después de esto

SPNEGO Sí

será una bandera en la versión de ayuda.

Tenga en cuenta que su versión curl no admitirá keytabs, autenticación de contraseña de nombre de usuario o modos de caché de credenciales. Si quieres que use mi tenedor de curl (este dosent tiene el parche de Micheal):

 github.com/Khalian/CURL