Saviynt unveils its cutting-edge Intelligence Suite products to revolutionize Identity Security!
Click HERE to see how Saviynt Intelligence is transforming the industry.
Saviynt Copilot Icon

Documentation to implement SSO using ADFS

TimoR
Regular Contributor
Regular Contributor

Hi,

we are implementing SSO using this documentation:
https://docs.saviyntcloud.com/bundle/EIC-Admin-v23x/page/Content/Chapter06-EIC-Configurations/Config...

However, there is only detailed documentation provided for the necessary steps in Azure AD, Google, and Okta.

Is there any way Saviynt could provide documentation on the necessary steps needed in ADFS to make SSO work with Saviynt? Or did someone make it work, and then, how?
Some settings like Binding (POST, redirect, ...) are unclear and we would like to get it right, since we need to open a support ticket to turn off SSO again when something goes wrong.

Thank you.

3 REPLIES 3

saikanumuri
Saviynt Employee
Saviynt Employee

Hi,

Thanks for reaching out.

AzureAD, Okta, and Google are just sample references as they are the most commonly used IDP across our customers. however, the SSO configs are pretty standard on the Saviynt side and don't really vary with IDP.
You should be able to generate the IDP file (Using SHA-1 or SHA-256) and configure the SSO by following the steps mentioned in the documentation.
https://docs.saviyntcloud.com/bundle/EIC-Admin-v2022x/page/Content/Chapter06-EIC-Configurations/Conf...

rushikeshvartak
All-Star
All-Star

You can add feedback on documentation page


Regards,
Rushikesh Vartak
If this helped you move forward, click 'Kudos'. If it solved your query, select 'Accept As Solution'.

TimoR
Regular Contributor
Regular Contributor

We set up the SSO on the Saviynt side as well as the ADFS side, exchanged XML files from the systems that we uploaded. The configuration looks ok and as per Saviynt documentation.

But when we activate SSO we get these errors in Saviynt and the SSO does not work:

"ecm","2023-07-17T08:23:12.804+00:00","{"log":"2023-07-17 08:23:12,380 [http-nio-8080-exec-3] DEBUG auth.LoginController - thresholdcount...3\n","stream":"stdout","time":"2023-07-17T08:23:12.380808673Z"}"

 
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"2023-07-17 08:23:12,382 [http-nio-8080-exec-3] ERROR errors.GrailsExceptionResolver - NullPointerException occurred when processing request: [POST] /ECM/saml/SSO/alias/saviyntdev\n","stream":"stdout","time":"2023-07-17T08:23:12.382784816Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"Cannot get property 'principal' on null object. Stacktrace follows:\n","stream":"stdout","time":"2023-07-17T08:23:12.382795249Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"java.lang.NullPointerException: Cannot get property 'principal' on null object\n","stream":"stdout","time":"2023-07-17T08:23:12.382799153Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at com.saviynt.auth.LoginController.authfail(LoginController.groovy:359)\n","stream":"stdout","time":"2023-07-17T08:23:12.382803382Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at grails.plugin.springsecurity.web.authentication.AjaxAwareAuthenticationFailureHandler.onAuthenticationFailure(AjaxAwareAuthenticationFailureHandler.java:48)\n","stream":"stdout","time":"2023-07-17T08:23:12.382807745Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at grails.plugin.springsecurity.web.SecurityRequestHolderFilter.doFilter(SecurityRequestHolderFilter.java:59)\n","stream":"stdout","time":"2023-07-17T08:23:12.382811361Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at com.mrhaki.grails.plugin.xframeoptions.web.XFrameOptionsFilter.doFilterInternal(XFrameOptionsFilter.java:69)\n","stream":"stdout","time":"2023-07-17T08:23:12.382814659Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at com.brandseye.cors.CorsFilter.doFilter(CorsFilter.java:82)\n","stream":"stdout","time":"2023-07-17T08:23:12.382826953Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at java.lang.Thread.run(Thread.java:750)\n","stream":"stdout","time":"2023-07-17T08:23:12.382830578Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"2023-07-17 08:23:12,420 [http-nio-8080-exec-3] ERROR error.ErrorController - Exception\n","stream":"stdout","time":"2023-07-17T08:23:12.420765993Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"org.codehaus.groovy.grails.web.errors.GrailsWrappedRuntimeException: Cannot get property 'principal' on null object\n","stream":"stdout","time":"2023-07-17T08:23:12.420788458Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at grails.plugin.springsecurity.web.authentication.AjaxAwareAuthenticationFailureHandler.onAuthenticationFailure(AjaxAwareAuthenticationFailureHandler.java:48)\n","stream":"stdout","time":"2023-07-17T08:23:12.420792713Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at grails.plugin.springsecurity.web.SecurityRequestHolderFilter.doFilter(SecurityRequestHolderFilter.java:59)\n","stream":"stdout","time":"2023-07-17T08:23:12.420796633Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at com.mrhaki.grails.plugin.xframeoptions.web.XFrameOptionsFilter.doFilterInternal(XFrameOptionsFilter.java:69)\n","stream":"stdout","time":"2023-07-17T08:23:12.420799462Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at com.brandseye.cors.CorsFilter.doFilter(CorsFilter.java:82)\n","stream":"stdout","time":"2023-07-17T08:23:12.420802805Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at java.lang.Thread.run(Thread.java:750)\n","stream":"stdout","time":"2023-07-17T08:23:12.420805586Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"Caused by: java.lang.NullPointerException: Cannot get property 'principal' on null object\n","stream":"stdout","time":"2023-07-17T08:23:12.420809244Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009at com.saviynt.auth.LoginController.authfail(LoginController.groovy:359)\n","stream":"stdout","time":"2023-07-17T08:23:12.420812448Z"}"
"ecm","2023-07-17T08:23:12.804+00:00","{"log":"\u0009... 5 more\n","stream":"stdout","time":"2023-07-17T08:23:12.420815446Z"}"
 
 
Any idea what this exactly means?