Erro “WIF10201:Nenhum mapeamento de chave válido encontrado” ao tentar criar declarações de SAML

StackOverflow https://stackoverflow.com//questions/25014101

Pergunta

Estou tentando validar uma resposta SAML proveniente do Siteminder IDP de terceiros.Eu instalei o certificado fornecido por eles.Quando eu ligo para o ValidarToken método (System.IdentityModel.Tokens) para criar declarações, recebo o seguinte erro:

WIF10201:Nenhum mapeamento de chave válido encontrado para o SecurityToken: 'System.IdentityModel.tokens.x509SecurityToken' e emissor:'uri do emissor'

Pesquisei profundamente para encontrar o erro e ele foi lançado pelo método ObterIssuerName (System.IdentityModel.Tokens).

Onde está o problema?Pesquisei esse problema no Google, mas não encontrei nada específico para o meu caso.O token SAML do meu cliente está com algum problema ou há algo que estou faltando na implementação.Sou bastante novo na autenticação federada, então desculpe qualquer imprecisão com a terminologia usada.

Gaurav

Foi útil?

Solução

Ok, encontrei a solução, mas não consegui entender a leitura por trás dela (noob completo, atualizarei a resposta quando eu souber mais).

Segui esta abordagem de converter a resposta SAML2 em resposta WSFed e, nesse novo token, executei meu código, agora o erro desapareceu.

http://blogs.msdn.com/b/bradleycotier/archive/2012/10/28/saml-2-0-tokens-and-wif-bridging-the-divide.aspx

Observação :você ainda precisa substituir o método de token de validação (o que eu fiz originalmente) para evitar o seguinte erro:

“ID4154: A Saml2SecurityToken cannot be created from the Saml2Assertion because it contains a SubjectConfirmationData which specifies an InResponseTo value. Enforcement of this value is not supported by default. To customize SubjectConfirmationData processing, extend Saml2SecurityTokenHandler and override ValidateConfirmationData.”

Obrigado.

Outras dicas

Você provavelmente está faltando uma configuração que mapeia o nome do emissor (conforme especificado dentro do token) para o certificado (provavelmente especificado com uma impressão digital).Eu acho que você resolve isso com alguma configuração no seu web.config.Dê uma olhada no p.e. Microsoft Validating Name Registry A página contém alguma configuração de amostra.Definir isso corretamente depende inteiramente de sua situação.

Queria fazer uma anotação para referência futura, pois também encontrei esse erro, mas minha resolução foi diferente.Recebi o erro WIF10201 em um aplicativo MVC personalizado que usa autenticação baseada em declarações ADFS (3.0) no Windows Server 2012.No web.config do aplicativo MVC, a impressão digital da chave de assinatura do token ADFS é registrada.Acontece que quando o certificado de assinatura está prestes a expirar, o ADFS cria uma nova chave.A nova chave é marcada como "primária" e a chave antiga é marcada como "secundária" no console do ADFS (em AD FS/Serviço/Certificados).Então no meu web.config é claro que ainda havia a impressão digital da antiga chave (secundária).Assim que a substituí pela impressão digital da nova chave (primária), o erro desapareceu.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top