1

カスタム STS を実装しましたが、Saml トークンでうまく機能します。トークンを後で WCF Rest ベースのサービスに渡す必要があるため、JWT 形式でトークンを取得する必要があります。https://nuget.org/packages/System.IdentityModel.Tokens.Jwt/から Jwt Token Handler をインストールしました 。

これは、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 トークン ハンドラーを追加するだけでは不十分ですか? ありがとう

4

1 に答える 1