I have an ASP.NET application whose app pool is running as Network Service which makes a request to SSRS running on a separate server to retrieve a report. The report displays the username (using SSRS's User!UserID parameter). I would have expected it to show the machine account a la MY_DOMAIN\SOME_SERVER_NAME$ but instead it shows NT AUTHORITY\NETWORK SERVICE.
I read the summary of the NTLM flow at https://docs.microsoft.com/en-us/windows/win32/secauthn/microsoft-ntlm which many blogs reference.
- Is NT AUTHORITY\NETWORK SERVICE the username actually used in the NTLM messages? Or is the real domain + machine name used and it is just translated on the receiving server for display? (It would seem the real machine account would have to be used in the message so the domain controller could look up the right account to validate the message.)
- Is there a way to get the actual machine account instead of NT AUTHORITY\NETWORK SERVICE? I want to take action based on which server sent the request, whereas just "NT AUTHORITY\NETWORK SERVICE" only tells me that some server within my domain made the request.