我使用的是Thinktecture IdentityServer v2,依赖方令牌类型设置为none。使用此设置可以正常运行代码。
我希望使用JWT令牌,所以我有一个从我的MVC应用到API的通用界面,以及从手机/标签应用客户端到API。
当我将令牌类型设置为JWT时,我登录IdentityServer然后它会抛出以下错误:
ID4014: A SecurityTokenHandler is not registered to read security token ('BinarySecurityToken', 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd').
我创建了一个标准的MVC应用,并将身份验证设置为Organizational Accounts -> On premise
,并将内部部署权限设置为IdentityServer元数据网址。
我计划从MVC应用程序调用WCF(甚至可能在其他平台上调用javascript代码)。
到目前为止,我已经安装了特定的JWT处理程序Update-Package System.IdentityModel.Tokens.Jwt -Version 3.0.2
(v4.0.0显然存在与Thinktecture IdentityServer v2的问题),然后将web.config设置为包括:
然而,我在登录时遇到了一个新的异常:
Jwt10315: Signature validation failed. Keys tried: 'No non-null SecurityKeys were found'.
jwt: '{"typ":"JWT","alg":"RS256","x5t":"_rKoogN25ibGWZGC94xaed9g7FE"}.{"iss":"http://identityserver.v2.thinktecture.com/test","aud":"https://localhost:44302/","nbf":1419269158,"exp":1419305158,"nameid":"user","unique_name":"user","authmethod":"http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password","auth_time":"2014-12-22T17:21:43.655Z"}'
如何使用MVC应用程序以便使用JWT令牌?
答案 0 :(得分:0)
为什么要使用JWT?特别是当你想稍后调用WCF时 - JWT是错误的选择。 WCF最适合SAML令牌。