HTTPSConnection: Windows Login übergeben
Verfasst: Donnerstag 4. August 2016, 09:01
Erstmal hallo zusammen
Ich bin neu in Python und auch neu im Forum und hoffe, in eurer Gemeinde aufgenommen zu werden
Und jetzt zu meiner ersten Frage. Ich will mit Python einen REST-Webservice ansprechen. Die Verbindung wird auch mit SSL abgesichert. Alles funktioniert auch wunderbar. Nur muss ich User und Passwort selbst eingeben. Gibt es eine Möglichkeit, wie ich der HTTPSConnection direkt den Windows User als Authentifizierung übergeben kann?
Wie gesagt, es funktioniert so, wie ich es oben geschrieben habe. Ich will nur noch den Windows User übergeben, damit meine Kollegen nicht ihr Passwort eingeben müssen. Wenn es zu dem Code generell einen Verbesserungsvorschlag gibt, nehme ich ihn natürliche gerne an 
Vielen Dank schon mal
Kurzer Nachtrag: Ich nutze Python 3.5.1
Ich bin neu in Python und auch neu im Forum und hoffe, in eurer Gemeinde aufgenommen zu werden

Und jetzt zu meiner ersten Frage. Ich will mit Python einen REST-Webservice ansprechen. Die Verbindung wird auch mit SSL abgesichert. Alles funktioniert auch wunderbar. Nur muss ich User und Passwort selbst eingeben. Gibt es eine Möglichkeit, wie ich der HTTPSConnection direkt den Windows User als Authentifizierung übergeben kann?
Code: Alles auswählen
import socket, ssl, http.client
from base64 import b64encode
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
context.verify_mode = ssl.CERT_REQUIRED
context.check_hostname = True
context.load_default_certs()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ssl_sock = context.wrap_socket(s, server_hostname='Servername')
conn = ssl_sock.connect(('Servername', 443))
userAndPass = b64encode(b"user:password").decode("ascii")
headers = { 'Authorization' : 'Basic %s' % userAndPass }
h = http.client.HTTPSConnection('Server', port=8443, context=context, check_hostname=True)
h.request('GET', 'https://webserviceadresse', headers=headers)
response = h.getresponse()
data = response.read()

Vielen Dank schon mal
Kurzer Nachtrag: Ich nutze Python 3.5.1