Проблема:
Проявляется некорректная работа ADFS Extension. Например: на ферме ADFS ощутимо тормозит, плохо отрисовывает страницу входа, при входе на тестовую страницу ADFS между успешной аутентификацией в Indeed AM и входом на страницу проходит большой промежуток времени. Также, переодически аутентификация и вовсе не проходит.
Описание ошибки из событий:
Description:
The description for Event ID 1 from source Indeed Id MFA Adapter cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
If the event originated on another computer, the display information had to be saved with the event.
The following information was included with the event:
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at IndeedId.ADFS.MFAAdapter.MFAAdapter.GetSpecificUserName(IAuthenticationContext context)
at IndeedId.ADFS.MFAAdapter.MFAAdapter.ValidateProofData(IProofData proofData, IAuthenticationContext context, Boolean& isRetry, Boolean& isPending)
at IndeedId.ADFS.MFAAdapter.MFAAdapter.TryEndAuthentication(IAuthenticationContext context, IProofData proofData, HttpListenerRequest request, Claim[]& claims)
The message resource is present but the message was not found in the message table
Причина:
Данное поведение связанно с тем, что нарушается привязка между контекстом пользователя и локальным кэшем адаптера Indeed Id MFA Adapter, где он сохраняет состояние между вызовами. То есть, разные вызовы для одного пользователя уходят на разные сервера ADFS.
Вариант решения:
Настроить липкие сессии или их аналог между серверами ADFS.
Второй вариант решения:
Изменить тип балансировки с Round-Robin на Primary-Secondary. В таком случае все запросы ADFS будут идти на один сервер, в случае недоступности Primary сервера, ADFS запросы будут перенаправленны на сервер Secondary.
|