2013-07-03 3 views
1

사용자 지정 STS를 구현했으며 Saml 토큰과 잘 작동합니다. 이제 WCF Rest 기반 서비스에 전달해야하므로 JWT 형식의 토큰을 가져와야합니다. 전에서 JWT 토큰 처리기를 설치 한 :사용자 지정 Sts에서 JWT 형식의 토큰 받기

<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>  

그러나 스트리트 : https://nuget.org/packages/System.IdentityModel.Tokens.Jwt/

이것은 스트리트 프로젝트의 Web.config의 일부입니다 SamlSecurityToken을 계속 생성하십시오. 특정 토큰 유형을 설정하는 데 필요한 다른 구성이 필요합니까? securityTokenHandlers 섹션에서 Jwt 토큰 처리기를 추가하는 것으로 충분하지 않습니까? 감사합니다.

답변

0

토큰을 어떻게 요청합니까? WS-Trust에서는 RST의 토큰 유형을 전달할 수 있습니다. WS-Federation의 경우 STS에 코드를 작성해야합니다.

+1

안녕하세요, 응답 해 주셔서 감사합니다. 이제 작동합니다. WSFederationAuthenticationModule을 사용하여 Relaying Party 역할을하는 ASP.NET 웹 사이트에서 토큰을 요청했습니다. 웹 사이트가 RP-STS에서 토큰을 요청하고 사용자 지정 STS 등으로부터 토큰을 요청했습니다. 문제는 RP-STS 및 STS에서 필요한 config 클래스 (SecurityTokenServiceConfiguration을 종료 한)의 생성자에 있습니다. this .DefaultTokenType = "urn : ietf : params : oauth : 토큰 유형 : jwt"; – Fabio

관련 문제