2016-04-08 3 views
0

J'essaie d'accéder à un service REST qui utilise l'authentification Kerberos (interne de l'entreprise) à partir d'une application Python sous Windows. Cependant, il semble que le service est configuré pour attendre un SPNEGO uniquement lorsque je tente d'utiliser les demandes-kerberos pour se connecter comme:Accès au service Web authentifié SPNEGO à partir de Python sous Windows

requests.get('servicename', auth=HTTPKerberosAuth()) 

il produit une erreur 500 à partir du serveur avec:

javax.servlet.ServletException: GSSException: No credential found for: 1.2.840.113554.1.2.2 

Ma conjecture est que le serveur est configuré pour attendre SPNEGO seulement et le client Python ne supporte que Kerberos.

J'ai essayé d'installer PyKerberos mais cela échoue car il attend krb5 sur le système et je le fais sous Windows. Y at-il des bibliothèques disponibles qui pourraient m'aider à faire un appel SPNEGO de Python dans Windows?

Répondre

0

Si quelqu'un d'autre rencontrait un problème similaire - résolu en utilisant pycurl avec l'ensemble d'attributs pycurl.HTTPAUTH_GSSNEGOTIATE.

+0

N'utilisez pas 'HTTPAUTH_GSSNEGOTIATE'. Il a été [obsolète] (https://github.com/curl/curl/blob/37f0e8a32cf9ad0a87f8c60cfa12b65e61be15a9/docs/libcurl/symbols-in-versions#L20) l'année dernière en faveur de 'HTTPAUTH_NEGOTIATE'. –