我有一个Windows身份验证服务。使用以下代码,我可以获取(通过使用客户端)使用该服务的用户的Windows身份。了解WCF Windows身份验证
String currentUser = OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name;
在服务器的配置是:
<binding name="messageSecurity">
<security mode="Message">
<message clientCredentialType="Windows"/>
</security>
</binding>
我也看了,在服务器,它使用Kerberos进行这个工作。现在
,我想了解它我们的企业网络中的意义。在办公室中,用户将使用他们的活动目录凭证登录到他们的桌面。我们的服务托管在名为“SERV1”的Windows服务器中。
是否只有有权访问(登录)“SERV1”的用户才能访问该服务?或者所有能够登录到办公网络的用户(启用活动目录凭证)都能够使用该服务?
有没有一种方法,以确保只有CIO批准的应用程序将要访问的服务,保持服务为窗口认证?
这是否验证检查发生的每个服务操作调用或只对第一个电话?
是否有任何方式的服务将能够知道用户的Windows凭据?
注意:我所了解的是WindowsAuthentication可以与会员提供商进行比较 - 从集中位置提供用户名和密码。它可以与ASP.Net成员资格提供程序或Active Directory成员资格提供程序进行比较。
进一步阅读:
ASP.NET Active Directory Membership Provider and SQL Profile Provider
http://www.theserverside.net/tt/articles/showarticle.tss?id=ClaimsBasedSecurityModel
下面是一个非常好的帖子,它说明了如何使用AD组来限制对服务的访问:http://stackoverflow.com/a/5136551/29407 – 2012-03-06 18:02:03
@Darin。谢谢。我希望这个链接是针对我的第二个问题。你能回答其他问题吗?另外(对于问题2),我并不试图根据角色限制访问;但客户端。 – Lijo 2012-03-06 18:46:29