【发布时间】:2012-03-24 04:49:19
【问题描述】:
我有一项带有 Windows 身份验证的服务。使用以下代码,我可以获得(通过使用客户端)使用该服务的用户的 Windows 身份。
String currentUser = OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name;
服务器中的配置是:
<binding name="messageSecurity">
<security mode="Message">
<message clientCredentialType="Windows"/>
</security>
</binding>
我还在服务器中读到,它正在使用 Kerberos 来实现这一点。
现在,我正试图了解它在我们公司网络中的重要性。在办公室,用户将使用他们的活动目录凭据登录到他们的桌面。我们的服务托管在名为“SERV1”的 Windows 服务器中。
是否只有有权访问(登录)“SERV1”的用户才能访问该服务?或者所有能够登录办公网络(使用 Active Directory 凭据)的用户都可以使用该服务?
有没有办法确保只有 CIO 批准的应用程序才能访问服务,同时保持服务作为 Windows 身份验证?
此身份验证检查是针对每个服务操作调用进行还是仅针对第一次调用进行?
服务有没有办法知道用户的 Windows 凭据?
注意:据我所知,WindowsAuthentication 可以比作会员提供程序——从一个集中位置提供用户名和密码。它可以与 ASP.Net Membership Provider 或 Active Directory Membership Provider 进行比较。
进一步阅读:
【问题讨论】:
-
这是一篇非常好的文章,它说明了如何使用 AD 组来限制对服务的访问:stackoverflow.com/a/5136551/29407
-
@Darin。谢谢。我希望该链接适用于我的第二个问题。请问您也可以回答其他问题吗?另外(对于问题 #2),我并不是要根据角色来限制访问;但客户。
标签: c# asp.net .net wcf windows-authentication