Problemas lendo a autenticação de uma asserção SAML no .Net usando WSSecurityTokenSerializer

Tenho uma asserção SAML que desejo autenticar em .Net usandoWSSecurityTokenSerializer.

Eu tenho o chaveiro e o SAML XML, apesar de algumas edições.

Primeiro, recebo a asserção SAML do HTTPS POST:

// spec says "SAMLResponse=" 
string rawSamlData = Request["SAMLResponse"];

// read the base64 encoded bytes
byte[] samlData = Convert.FromBase64String(rawSamlData);

// read back into a UTF string
string samlAssertion = Encoding.UTF8.GetString(samlData);

// get the SAML data in an XML reader
var assertionPostStream = new StringReader(samlAssertion);
var reader = XmlReader.Create(assertionPostStream);

Então eu recebo as chaves fornecidas pelo meu IdP:

// get the key data
byte[] certificateData = System.IO.File.ReadAllBytes("myKeys.p7b");

// decode the keys
var cms = new SignedCms(SubjectIdentifierType.IssuerAndSerialNumber);
cms.Decode(certificateData);

// we have a keychain of X509Certificate2s, we need a collection of tokens
var certificatesAsTokens =
    from X509Certificate2 cert in cms.Certificates
    select new X509SecurityToken(cert) as SecurityToken;

// get a token resolver
var tokens = new ReadOnlyCollection<SecurityToken>(
    certificatesAsTokens.ToList());
var resolver = SecurityTokenResolver.CreateDefaultSecurityTokenResolver(
    tokens, true);

Finalmente, recebo um erro aqui:

// use the WS Security stuff to parse the reader
var securityToken = WSSecurityTokenSerializer.
    DefaultInstance.ReadToken(reader, resolver) as SamlSecurityToken;

Quando chamando issoReadToken Estou tendo o erro a seguir

Não é possível ler o token do elemento 'Response' com o namespace 'urn: oasis: names: tc: SAML: 2.0: protocol' para BinarySecretSecurityToken, com um '' ValueType. Se for esperado que esse elemento seja válido, verifique se a segurança está configurada para consumir tokens com o nome, espaço para nome e tipo de valor especificad

My XML SAML começa com:

<Response xmlns="urn:oasis:names:tc:SAML:2.0:protocol" ...

Então, claramente, eu tenho umResponse no elementourn:oasis:names:tc:SAML:2.0:protocol namespace.

Alguma idéia do que está errado / faltando aqu

questionAnswers(1)

yourAnswerToTheQuestion