SAML 2.0 troubleshooting
Summarize
Summary of SAML 2.0 troubleshooting
This guidance helps ServiceNow customers address common SAML 2.0 authentication issues within their instances, especially focusing on Australia release version scenarios. It provides practical solutions for errors encountered during SAML integration, with an emphasis on multi-node environments, CMS page authentication, and user redirection after Single Sign-On (SSO).
Show less
Common Issues and Solutions
- Error message: "is not a function."
This error often occurs in multi-node setups where the SAML plugin is not activated on all nodes, causing missing code and resulting errors. The recommended action is to contact Technical Support to restart the affected nodes to ensure the plugin is properly loaded and active across all nodes.
- SAML does not authenticate users accessing CMS pages.
By default, CMS pages are public and bypass authentication. To enforce SAML authentication on CMS pages, change the
viewcontent.dopublic page setting fromactive=truetoactive=false. - Cannot redirect users back to a CMS page after SAML authentication.
SSO integration uses a URL parameter named
URIto control redirection after IdP authentication but does not support relative URLs such as/ess. Instead, use deep linking syntax like/navto.do?uri=/ess, which loads the page inside the main navigation IFrame rather than full page.If the CMS entry page is made private (
viewcontent.do active=false), you must customize the Installation Exit login script to handle deep linking properly by constructing aRelayStateURL parameter. This customization ensures users are redirected correctly after authentication. - SAML does not redirect users to the appropriate page after authentication.
Check if the relay state parameter is sent to and returned from the Identity Provider (IdP). Use browser developer tools or HTTP header analyzing tools such as Chrome DevTools, Firefox with HTTPfox, or Fiddler for Internet Explorer to inspect HTTP requests and POST data. This helps confirm whether the relay state is properly handled during the authentication flow.
Additional Notes
Instances do not support troubleshooting solutions from external sites. For further details, refer to the official knowledge base articles. This ensures all troubleshooting aligns with supported practices for your ServiceNow instance.
Before contacting support, try the troubleshooting solutions available in the knowledge base on Hi.
To know more, see the KB0759251.
| Error or Symptom | Solution |
|---|---|
| Error message: "is not a function." This issue might occur in a multi-node environment. If the plugin does not get activated on all nodes, an error like the following appears: org.mozilla.javascript.EcmaError: [JavaPackage org.opensaml.saml2.core.impl.AuthnRequestBuilder] is not a function. |
This error occurs because the plugin was not active and did not load the .jar file. Therefore, the code appears to be missing. Contact Technical Support to restart nodes that are missing the plugin. |
| SAML does not authenticate users accessing CMS pages. | By default, CMS pages are public and therefore do not require authentication. If you want SAML to authenticate CMS pages, change the view_content.do public page from active=true to active=false. |
| Cannot redirect a user back to a CMS page after SAML authentication. | By default, the SSO integration uses a URL parameter called URI to
control where the user is directed after authentication at the IdP. SSO ignores relative
URLs. For example, SSO cannot redirect users to a /ess relative URL.
Instead, the user has to navigate to a URL such as /nav_to.do?uri=/ess,
which uses deep linking syntax. However, this puts the ESS portal inside the main navigation content IFrame. In other words, the site does not take up the full page, but rather loads as a page in your instance. For more information, see CMS Sites and Single Sign-On. If you change the CMS entry page to make it private by setting view_content.do to active=false, deep linking behavior then requires a customization to the Installation Exit login script. Create a script that looks for the URI portion of the URL and constructs a RelayState URL parameter containing the relative URL path to redirect users after authenticating at the IdP. |
| SAML does not redirect users to the appropriate page after authentication. | Determine if the relay state is passed out to the IdP and then passed back during authentication. You can do this with a browser capable of saving HTTP request headers and POST info, such as Chrome with its built-in developer tools, or Firefox with the add-on called HTTPfox. For Internet Explorer, use a third-party application such as Fiddler. The goal is to watch the requests pass from the client (browser) to the instance, and from the client to the IdP. |