scomes
scomes

Reputation: 1846

How do I get the username of the current user in a Flask app on an IIS server using Windows Authentication?

I have a Flask app (Python 2.7) running on an IIS server in Windows 10. The server is configured to use Windows Authentication. I am using an HttpPlatformHandler in order to execute the Python code.

I have verified that the authentication is working and am able to see the Kerberos "Negotiate" auth header. However, I cannot find a way to access the username of the user who requested the page.

I have tried printing the entire request header and request environment and it is not there. This post seems to be about my issue but the code in it is not correct. What can I do to pass the Windows username of the requester to my python code?

I would like to access the username of the user in order to both restrict page access by user and remove certain elements from pages based on user.

Upvotes: 6

Views: 11577

Answers (3)

Rayder99
Rayder99

Reputation: 1

I suggest using os library

import os

username = os.getlogin()

Upvotes: 0

hui chen
hui chen

Reputation: 1074

If the user is logged in, you can use flask_login.current_user.name to get the info.

Upvotes: -1

scomes
scomes

Reputation: 1846

It turns out that the answer on this post works for my configuration as well. I simply downloaded ISAPI_Rewrite 3, copy and pasted the text into httpd.conf, and was able to access the name of the user by calling request.headers.get('X-Remote-User') in my Python code.

Upvotes: 5

Related Questions