ID4014:未注册SecurityTokenHandler以读取安全令牌

时间:2014-04-03 07:24:44

标签: asp.net-mvc-4 wif asp.net-web-api

我拼命地试图从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

1 个答案:

答案 0 :(得分:1)

Microsoft为JWT令牌提供了开箱即用的处理程序。如果这符合您的需求(即您没有任何特殊要求使您编写自定义处理程序),那么我建议使用那个。我在ACS中使用它,它就像一个魅力。您可以将其安装为nuget(请参阅http://msdn.microsoft.com/en-us/library/dn205064(v=vs.110).aspx