Hallo,
ich lasse aktuell Flask unter Python 3.8 auf einem virtuellen Server (Windows Server 2016) in unserem Firmennetzwerk laufen.
Dazu habe ich einen Windows-Service eingerichtet der meine app.py ausführt. Ich habe also keinen unterlagerten Apacheserver oder ähnliches.
Damit ich nun meine Zugriffe steuern kann, möchte ich gerne das Active Directory (ntlm) unserer Firma nutzen.
Ich weis, dass ntlm nicht die sicherste Variante ist. Da es sich um eine reine Intranet-Seite handelt, ist das kein Problem.
Wenn ich aber sämtliche request oder os Variablen auswerte, bekomme ich nur den Server und den User meines VM-Servers angezeigt, der Flask aktuell ausführt.
Wie komme ich am geschicktesten an die Domain bzw. Usernamen des Clients ran?
Danke schon im Voraus für die Unterstützung
User aus NTLM-Authentifikation
Die Anzahl der Leute, die ntlm-Authentifizierung machen wollen ist nicht sehr gross, da scheint es ein Projekt zu geben: https://pypi.org/project/Flask-SSPI
Heutzutage benutzt man eigentlich Kerberos, da ntlm nicht wirklich sicher ist.
Heutzutage benutzt man eigentlich Kerberos, da ntlm nicht wirklich sicher ist.
Hallo,
vielen Dank für den Tipp.
Ich habe es mit Flask-SSPI zum laufen bekommen.
Für diejenigen, die auf der Suche nach so etwas waren, habe ich hier einen Beispielcode angehängt.
(Der Secret-Key muss natürlich angepasst werden.)
vielen Dank für den Tipp.
Ich habe es mit Flask-SSPI zum laufen bekommen.
Für diejenigen, die auf der Suche nach so etwas waren, habe ich hier einen Beispielcode angehängt.
(Der Secret-Key muss natürlich angepasst werden.)
Code: Alles auswählen
from flask_sspi import requires_authentication
from flask import Flask
app = Flask(__name__)
app.secret_key = ???
@app.route("/")
@requires_authentication
def protected_view(user):
return user
if __name__ == '__main__':
app.run(host='0.0.0.0', port=1337, debug=True)