繁体   English   中英

公开为WCF服务层的应用程序的身份验证和授权方案?

[英]Authentication and Authorization scheme for an application exposed as WCF Service Layer?

我知道这个问题必须在您的组织中讨论过百万次。 再去一次。

设计一个LOB应用程序,其业务操作作为服务公开。

这些服务将由我们自己的Web应用程序(ASP.Net MVC),智能桌面客户端,移动客户端以及我们的合作伙伴通过其Web应用程序或单个谨慎调用来访问。

当其他人不仅在访问我们的Web应用程序时都在访问服务时,对服务的每次调用都需要进行身份验证和授权。

最佳和最佳的安全方案是什么? 如何在从Web应用程序到服务的每次调用中传递经过身份验证的用户的凭据? (Windows Identity Foundation?)

Windows Identity Foundation就是这种情况吗? 如果是,什么零件适合哪里? 如何?

谢谢你的帮助。

问候。

尽管冒着明显的风险: 身份验证授权是两个不同的事物,应在应用程序的不同位置进行处理。

在WCF中,您可以使用IAuthorizationPolicyServiceAuthorizationManager类型(不是特别直观地命名)来实现身份验证。 这应该进行身份验证,但也允许您将经过身份验证的用户映射到IPrincipal实例。 您可以将此主体分配给Thread.CurrentPrincipal,以便以后可以从应用程序的实现中访问它。

Windows Identity Foundation(WIF)为您提供了主要与身份验证有关的新功能。 它通过定义IClaimsPrincipal接口在IPrincipal之上构建,但是概念保持不变。

如果您需要与联盟合作伙伴一起实施基于声明的安全性,那么WIF是正确的选择。 如果您只需要通过广告对内部用户进行身份验证和授权,那将不是我的首选。

但是,如果您遵循Liskov替代原则,并且仅针对IPrincipal进行编码,则在以后发现需要处理基于声明的标识的情况下,可以对WIF进行改造。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM