我们正在构建一个新的商业应用程序。我们将所有内容分层,在中间层我们的CRUD&业务工作流程将在他们自己的程序集中。这将允许我们同时使用WCF和Web Api允许消费者与我们的数据后端进行交互。
对于我们的MVC UI,Web服务的Web服务,Web服务调用的Windows服务,我们计划将WCF与自定义,Net.TCP或命名管道绑定一起使用。
但是,我们还希望将来创建Web Api接口。在我们的MVC应用程序中,有时我们可能需要javascript服务调用。
但是,如果我们需要支持与后端接口的移动设备,我们主要想要一条大道。
这是我们计划的内容的mspaint图表。
我们计划首先坚持服务器端代码,并且在绝对必要时只使用javascript。
我们计划支持WCF&最有效的二进制序列化形式,我们可以适应Web Api。
有了这个,我们正试图想出一个身份验证&授权架构我们可以在我们的应用程序中使用所有不同的层。
最初我希望使用像DotNetOAuth或Thinktecture IdentityServer 3这样的东西进行身份验证,并希望生成基于令牌的声明。看来如果我们能够弄清楚如何在WCF中为JSon Web Tokens创建支持,那将是最灵活的。
我们计划尝试使用微软的身份和声明。
有了这个,是否可以使用自定义代码自定义WCF,以便能够使用Thinktecture等解决方案对基于声明的授权进行身份验证和使用令牌?如果是,那里有任何文件/样本,我们就会失踪。
要明确的是,用户从我们的MVC UI应用程序向IdentityServer3或同等版本进行身份验证,获取JWT声明令牌。是否呼叫WCF服务或WebApi,他们都可以使用验证声明并将其用于授权?
或者我们是否必须采用WIF之类的东西,创建自定义STS然后并行提供OAuth服务?
2015年2月26日 - 昨晚我发现了以下帖子。 http://www.thecoderblogs.com/2014/04/exercise-3-securing-a-wcf-service-using-windows-azure-active-directory/看起来很有希望,但样本链接并不起作用。需要弄清楚如何使用带有Authorize和令牌的标头填充WCF客户端。再次提出任何意见都会非常感激。
答案 0 :(得分:0)
目前,我使用了来自多个不同地方的信息,并且我们正在使用自定义IDispatchMessageInspector。
我创建了一个3部分博客系列,介绍了我们为实现这一目标所做的工作here。
我们仍然需要找到一种方法来验证/授权IdentityServices TokenResponse在调用RequestClientCredentialAsync()时返回的AccessToken。
如果您查看日志,请提出评论,如果您有任何改进或有任何要添加的内容。