Вчера выложил конкретный вопрос об ошибке, которую я получаю в ADFS, что меня озадачило. Поскольку у меня очень ограниченный опыт устранения неполадок продуктов на базе Windows, я думаю, что совет о том, как решить эту проблему, был бы очень полезным.
Какие шаги вы бы предприняли отсюда для дальнейшего устранения проблемы?
Это выглядит многообещающе:
Один действительно полезный аспект ADFS заключается в том, что на страницах ASPX, поставляемых с ADFS, есть возможность на уровне кода. Они могут быть полезны для добавления кода для использования домашней области по умолчанию или для изменения поведения ADFS по индивидуальным причинам. Они также предоставляют простой способ выполнить настраиваемую проверку полученных ответов SAML. Это также можно использовать для управления ответом SAMLResponse до его использования ADFS для некоторых возможностей, которые не предоставляются ADFS.
Обычно есть несколько стандартных вещей, которые нужно проверять с входящими ответами SAML, и ADFS также будет делать это, но не всегда может выдавать удобочитаемое или понятное сообщение об ошибке. Вот некоторые из них:
Проверка этих типичных деталей в полученном SAMLResponse поможет вам определить проблему, чтобы ваш партнер мог быстро ее решить.
Один из распространенных запросов - возможность регистрировать ответ SAMLResponse в базе данных для каждого запроса, полученного ADFS. Для этого просто добавьте код в файл global.asax.cs, например следующий фрагмент:
public void Application_BeginRequest()
{
HttpRequest request = HttpContext.Current.Request;
HttpResponse response = HttpContext.Current.Response;
if (!String.IsNullOrEmpty(request["SAMLResponse"]))
{
SaveSamlResponseToDB(request["SAMLResponse"].ToString());
}
}
После этого вы можете управлять ответом SAMLResponse и выполнять для него настраиваемую проверку. Это обеспечивает механизм для выполнения дополнительной проверки помимо того, что делает текущий ADFS, и очень полезен для различных сценариев тестирования.
Основываясь на предложениях администратора Windows, я сделал следующее, что устранило проблему.
На этом этапе ошибка возникала только у части пользователей AD. Для этих пользователей я сбросил их пароли, что затем устранило проблему.
Хотя я не совсем уверен, почему это начало происходить или как эти шаги исправили это, моя теория заключается в том, что неиспользование одной учетной записи службы для управления всем этим привело к записи файлов, которые не могли быть прочитаны процессами, запущенными под другой учетной записью. .
Надеюсь, это кому-то поможет.