2016-11-21 5 views
5

ADFSからユーザーをサポートするためにAzure ACSで新しい認証方法を追加しようとしていますが、特に問題があります。私はそれがあるValidateTokenで主張を検査した場合MVSでWs-Federation認証が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を検証することができるよ

認証されているクレームと私が望むクレームがあるが、コールバックページを呼び出すと(Webアプリケーションの新しい適切なログインを作成したい)、フェデレーション認証に関する情報はなくなりました。

答えて

関連する問題