I have a service with windows authentication. Using the following code, I can get the Windows Identity of the user who (by using the client) consumes the service.
String currentUser = OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name;
The configuration in the server is:
<binding name="messageSecurity">
<security mode="Message">
<message clientCredentialType="Windows"/>
</security>
</binding>
I also read that in the server, it is using Kerberos for this to work.
Now, I am trying to understand its significance in our corporate network. In the office, users will be logging into their desktops using their active directory credentials. Our service is hosted in a windows server named “SERV1” .
Is only users who have access (to login) to “SERV1” can access the service? Or all users who are able to login to the office network (suing active directory credentials) will be able to consume the service?
Is there a way to ensure that only CIO approved applications will be accessing the service, keeping the service as windows authenticated?
Does this authentication check happen for each service operation call or only for the first call?
Is there any way the service will be able to know the windows credentials of the user?
Note: What I understand is WindowsAuthentication can be compared to a Membership provider - providing username and password from a centralized location. It can be compared to ASP.Net Membership Provider or Active Directory Membership Provider.
Further reading: