如何使用Microsoft JWT令牌处理程序保护基于webHttpBinding的WCF服务

如何使用Microsoft JWT令牌处理程序保护基于webHttpBinding的WCF服务,wcf,security,token,jwt,webhttpbinding,Wcf,Security,Token,Jwt,Webhttpbinding,我需要保护一个使用webHttpBinding和令牌的WCF服务,但很难弄清楚如何做到这一点。我的理解是,推荐的方法是使用JWT令牌 我有一个STS(IdentityServer),它通过OAuth 2.0向我的移动客户端(Sencha Touch应用程序)发布JWT令牌,该应用程序需要调用基于webHttpBinding的WCF服务 现在我想使用令牌来保护它,我知道微软已经发布了一个JWT安全令牌处理程序NuGet包 我已经在web.config中我的“identityConfiguratio

我需要保护一个使用webHttpBinding和令牌的WCF服务,但很难弄清楚如何做到这一点。我的理解是,推荐的方法是使用JWT令牌

我有一个STS(IdentityServer),它通过OAuth 2.0向我的移动客户端(Sencha Touch应用程序)发布JWT令牌,该应用程序需要调用基于webHttpBinding的WCF服务

现在我想使用令牌来保护它,我知道微软已经发布了一个JWT安全令牌处理程序NuGet包

我已经在web.config中我的“identityConfiguration”标记下的“securityTokenHandlers”标记中添加了这个安全令牌处理程序,但对于如何实际使用令牌处理程序验证令牌、提取声明和设置ICLAIMPrinicipal对象,我感到有点迷失

我所能找到的大多数示例都是使用WebAPI和ASP.NET应用程序的,但在我的例子中,我只需要使用webHttpBinding保护“普通”WCF服务


如果您能为我们提供帮助,我们将不胜感激

通过SOAP服务实现OAuth的示例不多。OAuth主要是为无法处理SOAP及其相关WS-Security复杂性的客户端创建的

虽然不常见,但仍然有可能,您只需要实现自己的WCF管道钩子(IDispatchMessageInspector),从HTTP头获取令牌,然后使用JWT类设置声明

我没有使用过这个代码示例,但它看起来可以满足您的需要。

谢谢您的回答。然而,我现在有点困惑。我在WCF中使用webhttpbinding,据我所知,它是REST样式的绑定,而不是基于SOAP的绑定?那么,使用OAuth来保护REST样式的服务是否很少见?如果是这样的话,我会非常困惑,如果您能为我指出一些其他的方向,如何使用令牌保护webhttpbinding,我将不胜感激?谢谢你提供的链接,我会看一看:)很抱歉给你带来困惑。我的错误是,webhttpbinding是一种REST风格的服务。WCF REST框架的寿命很短,因为WCF的设计主要考虑SOAP。现在.NET中的所有REST服务都是使用Web API构建的,Web API具有不同的安全拦截点。不过,我提到的那篇文章仍然有效。您需要将IDispatchMessageInspector组件实现为一个行为扩展,以连接到WCF管道并处理令牌。如果您想更好地了解WCF管道和拦截点,请阅读本文。