Не найдено действительное сопоставление ключей для securityToken

Я разрабатываю тестовое приложение для отображения утверждений об аутентифицированной личности в MVC-ASP.net (Visual studio 2013). Я выполнил аутентификацию из активного каталога следующим образом.

1. Добавьте новый проект mvc в решение. 2. нажмите «Изменить аутентификацию». 3.выберите учетную запись организации 4.выберите локально. 5.данный URL-адрес федерации 6.URL-адрес идентификатора приложения

После запуска приложения я получаю следующую ошибку.

WIF10201: не найдено действительное сопоставление ключей для securityToken: «System.IdentityModel.Tokens.X509SecurityToken» и эмитента: «http://websso.avanade.com/adfs/services/trust'

Эта ошибка возникает только для этой федерации, для другой федерации я могу видеть претензии.

После поиска в Интернете я думаю, что это проблема с сертификатом (отпечатком пальца). Но я не разбираюсь в решениях.

Может ли кто-нибудь объяснить мне, почему возникает эта ошибка и решение для нее.

Заранее спасибо !!!


person Sunil Aher    schedule 19.06.2014    source источник


Ответы (4)


У этой ошибки может быть 2 причины.

  1. Отсутствует отпечаток в web.config: получите фактический отпечаток из ADFS и поместите в web.config под тегом отпечатка.

  2. Несоответствие номера порта между сайтом и конфигурацией ADFS: обновите конфигурацию ADFS, указав URL-адрес, содержащий правильный номер порта.

Второе решение исправило это для меня...

person Sunil Aher    schedule 04.07.2014

Я столкнулся с этим, пытаясь обновить устаревшее приложение MVC для использования AAD.

Я основывал изменения на недавно созданном проекте с организационной аутентификацией и заметил, что у меня нет строки подключения с именем DefaultConnection, которая, как предполагает DatabaseIssuerNameRegistry, будет у вас, а также у меня нет ни одной из необходимых таблиц в базе данных.

Используя отличный пост со всеми подробностями, я провел рефакторинг кода для интеграции новых таблиц базы данных, создал и применил миграцию и вставил соответствующий ключ и арендатора в новые таблицы IssuingAuthorityKey и Tenant соответственно. Я также должен был убедиться, что изменил DatabaseIssueNameRegistry, чтобы использовать существующий DbContext.

person Jonathan Freeland    schedule 11.11.2014

Для решений, созданных в VS2013 и более поздних версиях, решение должно содержать логику для автоматического переключения ключей. Нет необходимости указывать значение в файле web.config.

Вы можете столкнуться с этой проблемой при переносе решения из локальной среды в другую. В этом случае вы, вероятно, попытаетесь указать свое решение на новое приложение в Azure Active Directory. Проверьте следующее:

  • Убедитесь, что все URL-адреса в файле web.config указывают на правильный URL-адрес, а не на тот, который автоматически генерируется при локальной настройке.
  • Удалите все записи из таблицы IssuingAuthorityKeys. Ключи будут заполняться автоматически при повторной сборке решения и его запуске. На сервере вам может потребоваться заменить DLL вручную, чтобы он обновился.
  • Последнее и самое важное: удалите все строки из таблицы Tenants. При первом запуске в новой среде администратор из Active Directory-владельца должен зарегистрироваться и авторизовать приложение.

Если значения в обеих таблицах по-прежнему не заполняются автоматически после этих шагов, проверьте этот map-found-for-securitytoken-system-identitymodel-tokens-x509securitytoken-and-issuer-httpssts-windows-net0f44c5d4-42b0-45c2-bf55-d0fea8430d33/" rel="nofollow">статья о том, как вручную получить значения.

person Ahmed Mansour    schedule 30.06.2016

Отпечатки пальцев и имена серверов в файле web.config чувствительны к регистру. убедитесь, что они введены правильно, и перезапустите IIS.

Это решило мою проблему.

person Radoss    schedule 16.09.2020