2016-11-21 10 views
5

Azure ACS를 사용하여 ADS에서 사용자를 지원하는 새로운 인증 방법을 추가하려고하지만 매우 구체적인 문제가 있습니다. 나는 그것이이다 ValidateToken의 주장을 검사하는 경우MVS의 Ws- 페더레이션 인증이 SAML2.0 확인 후에 클레임 정보를 유지하지 않음

public class SamlSecurityTokenHandlerEx : Saml2SecurityTokenHandler, ISecurityTokenValidator 
{ 
    public override bool CanReadToken(string securityToken) 
    { 
     return base.CanReadToken(XmlReader.Create(new StringReader(securityToken))); 
    } 

    public ClaimsPrincipal ValidateToken(string securityToken, TokenValidationParameters validationParameters, 
     out SecurityToken validatedToken) 
    { 
     validatedToken = ReadToken(new XmlTextReader(new StringReader(securityToken)), Configuration.ServiceTokenResolver); 
     var claims = new ClaimsPrincipal(ValidateToken(validatedToken)); 

     return claims; 
    } 

    public int MaximumTokenSizeInBytes { get; set; } 
} 

:

var audienceRestriction = new AudienceRestriction(AudienceUriMode.Never); 
var issuerRegistry = new ConfigurationBasedIssuerNameRegistry(); 
issuerRegistry.AddTrustedIssuer("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "https://XXXX.accesscontrol.windows.net/"); 
app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions 
{ 
    MetadataAddress = "https://XXXXX.accesscontrol.windows.net/federationmetadata/2007-06/federationmetadata.xml", 
    Wtrealm = "http://someurl/", 
    SecurityTokenHandlers = new SecurityTokenHandlerCollection 
    { 
     new EncryptedSecurityTokenHandlerEx(new X509CertificateStoreTokenResolver(StoreName.My,StoreLocation.LocalMachine)), 
     new SamlSecurityTokenHandlerEx 
     { 
      CertificateValidator = X509CertificateValidator.None, 
      Configuration = new SecurityTokenHandlerConfiguration() 
      { 
       IssuerNameRegistry = issuerRegistry, 
       AudienceRestriction = audienceRestriction 
      } 
     } 
    }, 
}); 

과 같이 구현 된 핸들러 : 나는 다음과 같은 설정을 가진 SAML2.0을 검증 할 수있어

인증 된 요청과 클레임 페이지를 호출 한 후에 (웹 응용 프로그램에 대한 새로운 적절한 로그인을 만들려는) 더 이상 연합 된 인증에 대한 정보가 없습니다.

답변