Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
跨多个项目保护WCF服务_Wcf_Architecture_Wcf Security - Fatal编程技术网

跨多个项目保护WCF服务

跨多个项目保护WCF服务,wcf,architecture,wcf-security,Wcf,Architecture,Wcf Security,为了确保核心WCF服务的安全,许多不同的应用程序都在使用它,我很难在一些体系结构元素上下功夫 在内部,我们有一个应用程序,允许HR人员更新peron的详细信息。这包含在WPF应用程序中。在外部,我们有一个网站,允许个人验证(通过广告会员提供商)并更新其详细信息 我们不希望用户能够看到其他用户的信息(出于明显的原因)。但我们不希望将此服务托管在用户将登录的同一个web应用程序中。以下是从visual studio的角度来看架构的外观: 服务应用程序 WPF应用程序 MVCWebApplicatio

为了确保核心WCF服务的安全,许多不同的应用程序都在使用它,我很难在一些体系结构元素上下功夫

在内部,我们有一个应用程序,允许HR人员更新peron的详细信息。这包含在WPF应用程序中。在外部,我们有一个网站,允许个人验证(通过广告会员提供商)并更新其详细信息

我们不希望用户能够看到其他用户的信息(出于明显的原因)。但我们不希望将此服务托管在用户将登录的同一个web应用程序中。以下是从visual studio的角度来看架构的外观:

服务应用程序

WPF应用程序

MVCWebApplication

它们不存在于相同的域中,例如,服务应用程序将托管在,而mvc应用程序将托管在。因此,用户登录,我们希望通过JSON访问Wcf服务。服务应用程序、wpf应用程序和MVCWeb应用程序都将使用AD凭据进行身份验证。但是,我们如何保护该服务,以便登录MVCWeb应用程序的用户只能看到他们的信息呢

我看到的大多数示例都说在服务内部使用HttpContext.Current.User检查。但是,由于用户在不同的站点进行身份验证,cookie如何传输?您是否最终不得不在您想要使用的同一个web应用程序中发布您的服务,以便cookie透明地传输


或者,不可能有一个位于中心的服务,该服务包含使用相同身份验证存储的不同应用程序,以确定谁可以访问该服务上的内容?

您正在寻找的是某种联邦身份验证系统,所有入口点都使用该系统。这就是Windows身份基础可以帮助您构建的。

在每个应用程序中,访问控制都是基于声明的,根据身份验证系统发布的每个用户安全令牌中嵌入的声明