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

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

1. Добавить новый проект MVC в решение. 2. Нажмите на Изменить аутентификацию. 3.Выберите учетную запись организации 4.Выберите на помещения. URL-адрес федерации 5.given

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

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

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

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

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

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

3 ответа

Решение

Может быть 2 причины для этой ошибки.

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

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

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

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

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

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

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

Это устранило мою проблему.

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

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

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

Если значения в обеих таблицах по-прежнему не заполняются автоматически после этих шагов, обратитесь к этой статье, чтобы узнать, как вручную получить значения.

Другие вопросы по тегам