0

Yesterday I posted a specific question about an error I'm getting in ADFS that has me stumped. Because I have very limited experience troubleshooting windows based products, I think advice on how to approach the problem would be very helpful.

  1. How do I get more information? I've done this and didn't get any new information, is there any other log that may be helpful?
  2. Google the crap out of every variation of the error message. Are there good other places to post an error for help?

What steps would you take from here to further troubleshoot the issue?

2 Answers 2

2

This looks promising:

http://social.technet.microsoft.com/wiki/contents/articles/3910.extending-the-error-diagnostics-of-adfs.aspx

One really helpful aspect of ADFS is that there is a code-level capability in the ASPX pages that ship with ADFS. These can be helpful for adding code to use a default home realm or alter the behavior of ADFS for custom reasons. These also provide a simple way to do custom validation on the received SAMLResponses. This can also be used for manipulating the SAMLResponse prior to being consumed by ADFS for some capability that is not provided with ADFS.

Typically there will be several standard things to check for with incoming SAMLResponses and ADFS will do this as well but may not always give you a human readable or understandable error message. Some examples of these are:

  1. Check for signature as ADFS is configured (correct algorithm, correct certificate used)
  2. Check for encryption as ADFS is configured
  3. etc...

Checking for these typical details in a received SAMLResponse will help you to identify the problem so that your partner can handle the problem quickly.

One common request is to be able to log the SAMLResponse to a database for every request received by ADFS. To do this, simply add some code to the global.asax.cs file such as the following snippet:

public void Application_BeginRequest()
{
        HttpRequest request = HttpContext.Current.Request;
        HttpResponse response = HttpContext.Current.Response;

        if (!String.IsNullOrEmpty(request["SAMLResponse"]))
        {
            SaveSamlResponseToDB(request["SAMLResponse"].ToString());
        }
}

After doing this you can manipulate the SAMLResponse and do custom validation on it. This provides a mechanism for doing additional validation beyond what ADFS current does and is very helpful for various testing scenarios.

1
  • Thanks for the response! I am able to look at the response by making a request from my Service Provider Spring saml project and running it through a debugger. Unfortunately the response message is null, which according to the documentation means the IDP should be responsible for telling you what the issue is: stackoverflow.com/a/26137117/2983312 Also, the same exact error appears for logging in to vanilla ADFS.
    – blur0224
    Jun 7, 2016 at 14:13
1

Based on suggestions from a Windows Admin, I did the following which resolved the issue.

  1. Ensured W32Time service was using NTP (it wasn't)
  2. Ensure all updates were installed (they were)
  3. Ensure all services were running under a service account, not an domain controller account (they weren't)
  4. After making sure ADFS was running under the service account, recreate the Service Provider

At this point, the error was only occurring for a subset of AD users. On those users, I reset their passwords, which then resolved the issue.

Although I am not entirely sure why this started happening or how these steps fixed it, my theory is that not using one service account to manage all of it led to files being written that couldn't be read in by processes running under a different account.

Hope this helps someone.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .