Отсутствует конфигурация для эмитента ошибки маркеров безопасности

Я унаследовал существующий проект без среды разработки. У меня есть код UAT и резервная копия производственной базы данных. Я могу запустить сайт локально через Visual Studio, но столкнулся с проблемой аутентификации, пытаясь настроить новый автономный сервер DEV на AWS (один сервер, без балансировщика нагрузки). Документ указывает, что сервер Prod представляет собой установку с двумя серверами с балансировщиком нагрузки.

Страницы внешнего интерфейса отображаются, хотя некоторый поиск не работает. При попытке войти на внутренние страницы Chrome возвращает «Страница xxx не работает. xxx перенаправлял вас слишком много раз». Используя инструменты разработчика, я вижу, как страница перенаправляется туда и обратно между SWT?realm=... и sitefinity?wrap_defalted=true&wrap_access_token... Во втором заголовке ответа перенаправления есть «X-Authentication-Error: Отсутствует конфигурация для эмитента маркеров безопасности 'https://xxx/Sitefinity/Authenticate/SWT' "

Я пробовал разные значения в строках web.config:

<federatedAuthentication>
        <wsFederation passiveRedirectEnabled="true" issuer="http://localhost" realm="http://localhost" requireHttps="true"/>
        <cookieHandler requireSsl="false"/>
</federatedAuthentication>

но это на самом деле ухудшило ситуацию, поэтому я вернулся.

Я проверил все настройки, указанные в http://docs.sitefinity.com/administration-switch-to-claims-based-authentication, и они, кажется, установлены правильно. Я действительно не знаю, что еще я могу проверить, чтобы заставить это работать.

Я нашел http://docs.sitefinity.com/administration-configure-security, но похоже, что эти настройки не установлены (у меня нет доступа к серверу Prod, поэтому я не могу подтвердить, действительно ли он настроен с балансировкой нагрузки). В настоящее время я использую 30-дневную пробную лицензию, поэтому не уверен, что это способствует возникновению проблемы. Официальная лицензия находится в процессе передачи клиентом. Доменное имя, связанное с официальной лицензией, будет отличаться от домена, на котором сейчас работает мой новый сервер.

Я также запускаю код версии 8 при установке Sitefinity версии 9. Я хотел заставить его работать, прежде чем пытаться обновить код. Я думаю, что также была загрузка сборки для выявления несоответствия, когда я пытался обновить свою локальную версию.


person Kevin Purnama    schedule 19.08.2016    source источник


Ответы (1)


Решение найдено: не связывайтесь с файлом SecurityConfig.config.

<securityTokenIssuers>
    <add key="B886AA7BFB5515BA63F577A44BBEB5C7AE674035514D128BC397346B11F4C97A" encoding="Hexadecimal" membershipProvider="Default" realm="http://localhost" />
</securityTokenIssuers>
<relyingParties>
    <add key="B886AA7BFB5515BA63F577A44BBEB5C7AE674035514D128BC397346B11F4C97A" encoding="Hexadecimal" realm="http://localhost" />
</relyingParties>

Несмотря на то, что он работает на сервере, приведенные выше строки все равно должны указывать на localhost. Похоже, что их нужно редактировать только в том случае, если у вас многосерверная установка с полностью отдельной STS.

Сначала я изменил его, чтобы оно соответствовало новому доменному имени, но после некоторых экспериментов с добавлением вариантов localhost и HTTP, похоже, лучше всего работает только с localhost.

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

person Kevin Purnama    schedule 19.08.2016