【问题标题】:Obtain token in JWT format from a custom Sts从自定义 Sts 获取 JWT 格式的令牌
【发布时间】:2013-07-03 14:04:58
【问题描述】:

我已经实现了一个自定义 STS,它适用于 Saml 令牌。 现在我需要获取 JWT 格式的令牌,因为我需要稍后将它传递给基于 WCF Rest 的服务。 我已经从以下位置安装了 Jwt 令牌处理程序: https://nuget.org/packages/System.IdentityModel.Tokens.Jwt/

这是 Sts 项目中 Web.config 的一部分:

  <securityTokenHandlers name="ActAs">
    <clear/>
    <add type="System.IdentityModel.Tokens.JwtSecurityTokenHandler, System.IdentityModel.Tokens.Jwt"/>
    <!--<add type="System.IdentityModel.Tokens.SamlSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add type="System.IdentityModel.Tokens.Saml2SecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />-->

    <securityTokenHandlerConfiguration>
      <audienceUris>
        <add value="URL_RP_STS"/>
        <add value="URL_CLIENT"/>
      </audienceUris>
      <issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089">
        <trustedIssuers>
          <add thumbprint="..." name="StsCustom" />
        </trustedIssuers>
      </issuerNameRegistry>
    </securityTokenHandlerConfiguration>
  </securityTokenHandlers>

  <audienceUris>
    <add value="URL_RP_STS" />
  </audienceUris>
  <!--certificationValidationMode set to "None" by the the Identity and Access Tool for Visual Studio. For development purposes.-->
  <certificateValidation certificateValidationMode="None" />
  <issuerNameRegistry type="System.IdentityModel.Tokens.ValidatingIssuerNameRegistry, System.IdentityModel.Tokens.ValidatingIssuerNameRegistry">
    <authority name="StsCustom">
      <keys>
        <add thumbprint="..." />
      </keys>
      <validIssuers>
        <add name="StsCustom" />
      </validIssuers>
    </authority>
  </issuerNameRegistry>
</identityConfiguration>    

但 Sts 继续生成 SamlSecurityToken。 是否需要一些其他配置来设置特定的令牌类型?在 securityTokenHandlers 部分添加 Jwt 令牌处理程序还不够吗? 谢谢

【问题讨论】:

    标签: wif


    【解决方案1】:

    您如何请求令牌?在 WS-Trust 中,您可以在 RST 中传入令牌类型。对于 WS-Federation,您需要为此在 STS 中编写代码。

    【讨论】:

    • 您好,感谢您的回复。现在它起作用了。已使用 WSFederationAuthenticationModule 从充当中继方的 ASP.NET 网站请求令牌。该网站从 RP-STS 请求令牌,并从自定义 STS 等请求令牌。问题出在 RP-STS 和 STS 中需要的配置类(扩展 SecurityTokenServiceConfiguration)的构造函数中:this.DefaultTokenType = "urn:ietf:params:oauth:token-type:jwt";
    猜你喜欢
    • 2012-11-20
    • 2021-06-19
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    • 2018-03-04
    相关资源
    最近更新 更多