我正在尝试创建一个简单的WCF服务来处理各种安全方案,但我不确定从哪里开始。
WCF服务将托管在IIS上(最有可能)。它需要由经过身份验证的活动目录用户和未经过身份验证的用户(匿名/外部)访问。我需要能够访问这两种类型的各种方法,尽管经过身份验证的用户应该可以访问其他方法。
我希望能够检查HttpContext.Current.User.Identity.IsAuthenticated(我认为这将是确定哪种类型的用户 - 或者它是ServiceSecurityContext.Current.WindowsIdentity)和访问角色的最简单方法数据库。该服务将由.net 4.0网站(不是webforms app而非mvc)和其他外部来源访问,这些外部来源可能是.net(例如java app或java web site)。
我不知道从哪里开始。什么类型的绑定,传输,安全模式。我可以使用会员/角色提供商(SimpleMembership或较旧的asp.net会员资格)与服务吗?
如果我想拥有不同类型的匿名用户,是否需要将其映射到不同角色的特定活动目录用户,还是可以包含某种用户名/密码进行身份验证?
我还需要能够使用模拟,因此假设权限正确,一个用户执行的操作可能看起来像是由另一个用户执行。
我一直在寻找各种选择并感到困惑。 ADFS,WIF,Microsoft.IdentityModel.dll,ACS 2.0等。
不确定什么是最好的,什么是矫枉过正的,什么将满足需求,哪些将不会满足需求,哪些是相对容易实现的。是否使用SSL,如果是,请如何设置服务web.config以及客户端web.config
我知道这一点有很多要问,但至少如果我指出正确的方向,我可以停止寻找不起作用或过于复杂的解决方案,并专注于正确的解决方案。