Ошибка WIF10201: при попытке создания утверждений из SAML не найдено действительное сопоставление ключей.

Я пытаюсь проверить ответ SAML, который исходит от Siteminder IDP от третьей стороны. Я установил предоставленный ими сертификат. Когда я вызываю метод ValidateToken (System.IdentityModel.Tokens) для создания утверждений, я получаю следующую ошибку:

WIF10201: не найдено действительное сопоставление ключей для securityToken: «System.IdentityModel.Tokens.X509SecurityToken» и эмитента: «URI эмитента»

Я копался глубоко, чтобы найти ошибку и ее выдачу методом GetIssuerName (System.IdentityModel.Tokens).

В чем проблема? Я искал эту проблему, но не нашел ничего конкретного для моего случая. Есть ли проблема с токеном SAML от моего клиента или я что-то упустил в реализации. Я новичок в федеративной аутентификации, поэтому извините за неточность в используемой терминологии.

Гаурав


person Gaurav    schedule 29.07.2014    source источник


Ответы (3)


Хорошо, нашел решение, но не смог понять, что за ним стоит (полный нуб, обновлю ответ, когда узнаю больше).

Следовал этому подходу преобразования ответа SAML2 в ответ WSFed, затем на этом новом токене я запустил свой код, теперь ошибка исчезла.

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

Примечание: вам все равно придется переопределить метод проверки токена (который я изначально сделал), чтобы избежать следующей ошибки:

“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.”

Спасибо.

person Gaurav    schedule 31.07.2014
comment
Некоторые могут столкнуться с этой проблемой из-за косой черты в конце URL-адреса эмитента. Удалите его, и все готово. - person Gaurav; 25.08.2014

Возможно, вам не хватает конфигурации, которая сопоставляет имя издателя (указанное внутри токена) с сертификатом (вероятно, указанным с помощью отпечатка пальца). Я думаю, вы решаете это с помощью некоторой конфигурации в вашем файле web.config. Посмотрите на p.e. Microsoft проверяет реестр имен издателей Страница содержит пример конфигурации. Правильная настройка полностью зависит от вашей ситуации.

person Willy Van den Driessche    schedule 30.07.2014
comment
Спасибо, я посмотрю и опубликую свои выводы здесь. - person Gaurav; 30.07.2014

Я хотел сделать заметку для дальнейшего использования, так как я тоже столкнулся с этой ошибкой, но мое решение было другим. Я получил ошибку WIF10201 в пользовательском приложении MVC, которое использует проверку подлинности на основе утверждений ADFS (3.0) в Windows Server 2012. В web.config приложения MVC записывается отпечаток ключа подписи токена ADFS. Оказывается, когда срок действия сертификата подписи подходит к концу, ADFS создает новый ключ. Новый ключ помечен как «основной», а старый ключ помечен как «дополнительный» в консоли ADFS (в AD FS/Service/Certificates). Так что в моем web.config был, конечно, еще отпечаток старого (дополнительного) ключа. Как только я заменил его отпечатком нового (первичного) ключа, ошибка исчезла.

person lzydrmr    schedule 19.01.2016