Change the Welcome Page Login for ITIL users

Joe Taylor
Giga Guru

I just implemented SSO authentication.

Now when my itil users (agents) open the welcome page, they are presented wtih this screen:

Local Login URL:   https://xxxxxx.service-now.com/login_locate_sso.do#

find_real_file.png

 

I want them to use the "External Login" method of authenticaion as the default.

External Login URL: https://xxxxxxx.service-now.com/login_locate_sso.do

find_real_file.png

 

How do I swap these around so the external login screen is the default?

 

7 REPLIES 7

Hello Joe, no problems. Thank you for implementing the KB0758382: How to redirect users to /login_locate_sso.do page from instance URL and for sharing the feedback here with the screenshots, good to know about the results you had.

I am not totally sure if it could work, but I think one way to have the "Forgot Login Credentials / Forgot Password" in the login_locate_sso.do, could be:

  • Navigate to the System UI >> Welcome Page Content, search for the Section called "Forgot your login credentials?"
  • Look at the "Text" area field, you will see there is a hyperlink in the "(...)reset your password here", notice for what page this link points to, e.g.: /reset_password.do
  • Navigate to the System UI >> UI Pages and search for the UI Page: login_locate_sso


You will notice in the UI Page "login_locate_sso", you could add your own script code to call other pages (in this OOB UI Page, it only calls the login.do).

Have in mind it would be a customization in the UI Page, so, it would be better if you could avoid that (like suggesting the local users which do not use the SSO, to create a local favorite/bookmark to the "https://instance_name.service-now.com/reset_password.do", and open that page when they need the password reset).

Here there are some references, in case they could also help you:

 

----
PS: there is new a feature (since Rome release), called Account recovery (ACR) and it is active by default in fresh instances since the Rome release (instances provisioned already on Rome or newest family releases).
I think it is not your case (as you have already activated the SSO), but just in case you need: if you have a fresh instance (not an upgraded instance), I suggest you to check the default properties in regards to the ACR, in order to allow the local login, as informed in this Now Support KB Article: KB0997746: Rome release - Users cannot login with Username & Password.
----

Thank you, and have a good week!
Vivi Brasil

Joe Taylor
Giga Guru

Thanks for this Vivi.

 

None of links provided explain exactlyt what I want to do.

 

Here's what the top of  OOB login_locate_sso UI page looks like.

I don't know how to edit this to include what I want.

I want to include a section called "Forgot your loing credentials?"

 

How do i do this?

 

find_real_file.png

 

UI Page login_locate_sso

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<FORM name="loginPage" id="loginPage" action="login.do" method="post">
<j:if test="${!sn_ui.PolarisUI.canUsePolarisTemplates()}">
<g:inline template="output_messages2.xml" />
</j:if>
<g:evaluate jelly="true">
var title = gs.getMessage('Login with SSO');
var transaction = GlideTransaction.get();
if (transaction.isVirtual()) {
// we are in CMS
var glideSession = GlideSession.get();
if (GlideStringUtil.nil(glideSession.getProperty("starting_page"))) {
glideSession.putProperty("starting_page", "/" + transaction.getSiteName() + "/");
}
}
var ssoSelectorField = gs.getProperty('glide.authenticate.multisso.login_locate.user_field', 'user_name');
var td = new GlideTableDescriptor('sys_user');
var ed = td.getElementDescriptor(ssoSelectorField);
if (ed)
var ssoSelectorFieldLabel = ed.getLabel();
else
gs.log("No matching field in the 'sys_user' table for the given SSO selector field : " + ssoSelectorField);
</g:evaluate>

<div data-form-title="$[title]" ></div>

<g:evaluate var="jvar_local_login_url" jelly="true">
var login_url = 'login.do';
if (GlideStringUtil.notNil(gs.getSession().getProperty('login_locate_sso.login_url')))
login_url = gs.getSession().getProperty('login_locate_sso.login_url');
login_url;
</g:evaluate>

Hello Joe, you are more than welcome.

I am good at dealing with SSO and IDP, but I am not the right person to help you with the Jelly script code used in the UI Page (I would have to try to implement it in my PDI, but I won't have enought time for it now).

I would suggest if you could ask in a separate question in the Developer Community forum (as your question now is more related to the script, someone with more expertise in Jelly language could help you in a better way).

And there is also another page (I am not sure what page is being used when you click in the "Forgot Login Credentials"), the other page is: $pwd_reset.
PS: the "$" character in the prefix of that page, means that is a protected UI Page.

So, I suggest you to check what is the page that opens for you (pwd_reset.do or reset_password.do), and ask in another post, something like:

  • How to embed the "Forgot Login Credentials / Forgot Password" (pwd_reset or reset_password) from the Welcome Page, in the login_locate_sso.do page

 

It is essential to say: changes in an existing UI Page (Base instance) need to be carefully evaluated, as when some SSO plugin updates it, or if some patch or familiy upgrade releases something new or some fix, as you have changed it, you could face a conflict. So, be aware of the risks about changing it versus the benefits to the users.

 

PS: if you think my answer with the suggestion to apply the KB0758382: How to redirect users to /login_locate_sso.do page from instance URL, helped you, could you please mark that as the correct here? So, when other members from the community search about redirect users to login_locate_sso, they could see the correct answer in the context (as you were able to set it as your default screen, according to your screenshots).

 

----
Just in case you could consider it:

There is a screenshot below, which illustrate some cautions when modifying something in the Base instance
----

find_real_file.png