我拼命地试图从ACS使用JWT令牌来授权我的webapi。我到目前为止它已将它重定向到ACS站点,我可以登录。回调到我的网站后,我得到:
ID4014:未注册SecurityTokenHandler以读取安全性 令牌(' BinarySecurityToken', ' http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'。)
我已经阅读了很多有关此内容的博客,并且我制作了自己的CustomJwtSecurityToken。但不知怎的,它仍然无法奏效。我根据这个网站做了一切:http://blog.codit.eu/post/2013/03/19/Using-ACS-and-WAAD-with-JWT-Tokens-for-Web-and-Store-Applications-(Part-1-2).aspx
我的web.config:
<system.identityModel>
<identityConfiguration saveBootstrapContext="true" >
<audienceUris>
<add value="https://localhost/Connector" />
</audienceUris>
<securityTokenHandlers>
<add type="Connector.Security.Azure.CustomJwtSecurityTokenHandler, Connector, Version=1.0.0.0, Culture=neutral" />
<securityTokenHandlerConfiguration>
<certificateValidation certificateValidationMode="PeerTrust"/>
<issuerTokenResolver type="Connector.Security.Azure.CustomJwtSecurityTokenHandler, Connector, Version=1.0.0.0, Culture=neutral">
<securityKey symmetricKey="[mykey]" name="https://localhost/Connector" />
</issuerTokenResolver>
</securityTokenHandlerConfiguration>
</securityTokenHandlers>
<issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<trustedIssuers>
<add thumbprint="[mythumbprint]"
name="https://[mycompany].accesscontrol.windows.net/" />
</trustedIssuers>
</issuerNameRegistry>
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="false" />
<wsFederation passiveRedirectEnabled="true" issuer="https://[mycompany].accesscontrol.windows.net/v2/wsfederation" realm="https://localhost/Connector" requireHttps="false" />
</federationConfiguration>
</system.identityModel.services>
我检查了小提琴手的回应。我收到了JWT令牌。不知何故,我的网站没有将它发送到正确的处理程序。有人知道为什么或如何调试这个? 令牌类型:JWT&安培; LT
答案 0 :(得分:1)
Microsoft为JWT令牌提供了开箱即用的处理程序。如果这符合您的需求(即您没有任何特殊要求使您编写自定义处理程序),那么我建议使用那个。我在ACS中使用它,它就像一个魅力。您可以将其安装为nuget(请参阅http://msdn.microsoft.com/en-us/library/dn205064(v=vs.110).aspx)