Using SAML 2.0 SSO with an Identity Provider (IdP)
If you are using SAML with an IdP that has not been documented (Okta, OneLogin, ADFS, Azure) you can still integrate with Litmos by following the general steps required to setup SAML 2.0. The majority of the configuration will be done on the IdP server, with very little information needed in Litmos. Below you can see the setup required for the first IdP connection in Litmos:
- Go to Account Settings
- Click on "Integrations"
- Click on "SAML 2.0 (Single Sign On)"
- Add the Metadata.xml from your IdP provider
- Ensure the Litmos endpoint being used to integrate SAML with is:
“…/integration/splogin”
Add an Additional SAML 2.0 SSO Identity Provider (IdP)
IdP initiated SAML SSO can now be configured for two separate identity providers enabling organizations to SSO unique sets of users from different providers with ease.
The additional IdP endpoint will be listed as Idp1. The additional IdP can be added and deleted as needed without affecting the existing, original IdP connection. Ensure you add valid SAML metadata XML before adding the second IdP connection.
Below are the steps to add the additional IdP:
- Go to Account Settings > Integrations > SAML 2.0 (Single Sign On)
- Click on the ‘Add Additional IDP’ button. Enter the XML metadata in the pop window and then click on ‘Add New IDP’
- Return to see a drop down with the 2 IDP connection – IDP 0 and IDP 1. Select to view the specific connection
- IDP 1 can be deleted by clicking on ‘Delete this IDP’.
Important note :
- It is recommended there is only one identity provider per user profile. Users that require more than one profile should have two logins.
- If the same user connects from both IdPs with same credentials, information will be created based on the first IdP connected and updated based on the most recent connection.
- SAML endpoints for each of these IdP configurations is slightly different, but the configuration requirements are identical.
Endpoint for IdP 0 - https://domain.litmos.com/integration/splogin
Endpoint for IdP 1 - https://domain.litmos.com/integration/splogin?idp=1
The Litmos SAML endpoints supports:
- SHA-256
- Passing the TeamID attribute with the assertion to assign users to a team upon user creation. (TeamID attribute is case sensitive.)
- Passing a RelayState parameter as part of the SAML assertion for deep-linking
- Auto Generating/Auto Provisioning of users upon the SAML assertion if a matching user does not exist in Litmos and the checkbox for "Autogenerate users" is marked.
Important Note: The <Createdby> value for users created through this process will be the ID of the most recent Account Owner to click "Save Changes" on the SAML 2.O Integrations tile. This ID value will not change until a new Account Owner clicks the "Save Changes" button even if the original profile is deactivated, demoted or deleted**
It's relatively easy to implement on the Litmos side, as all that is needed is the SAML metadata.xml from your IdP.
Important Note: SAML 2.0 setup with an IdP is compatible with custom domains as of June 21st, 2019.
The IdP Configuration
Depending on your IdP’s requirements, you will need to provide different pieces of information. However, in most cases manually configuring Litmos as the SP will have the necessary data needed to make a successful SAML assertion.
Destination: The destination URL will be your Litmos URL. If you are using the “/integration/splogin” endpoint and are providing your IdP metadata in Litmos, the destination URL will be your endpoint as well. For example, the full URL will be
“https://domain.litmos.com/integration/splogin” or “https://domain.litmos.com/integration/splogin?idp=1” depending on the IdP connection required.
Recipient: Apply your SAML endpoint for the recipient, as you have for destination.
AudienceRestriction: Apply your Litmos endpoint to this attribute, as well.
SAML attributes: SAML attribute statement can either be unspecified or basic format.
<saml:Attribute Name="Email" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
OR:
<saml2:Attribute Name="Email" NameFormat=“urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">
The following attributes can be passed through the SAML assertion:
Litmos Field |
Data Type |
FirstName |
String |
LastName |
String |
Title |
String |
CompanyName |
String |
PhoneWork |
String |
PhoneMobile |
String |
Skype |
String |
|
String |
Website |
String |
Street1 |
String |
Street2 |
String |
City |
String |
State |
String |
Country |
String |
PostalCode |
String |
CustomField1 |
String |
CustomField2 |
String |
CustomField3 |
String |
CustomField4 |
String |
CustomField5 |
String |
CustomField6 |
String |
CustomField7 |
String |
CustomField8 |
String |
CustomField9 |
String |
CustomField10 |
String |
Important Note: The casing of these attributes is extremely important. Any misspelled word or incorrect casing may result in a failed assertion.
Logging In using SSO
Logging in to Litmos will need to take place from an IdP initiated SSO URL. Litmos support can setup a SSO Login redirect on your Litmos login account so that anytime a user is not authenticated by SSO, they will be sent to the IdP login page. Furthermore, if you plan on allowing some users to login manually to Litmos, while wanting the rest of your users to login in using SAML SSO, you can add the IdP URL as a link on your Litmos login screen. To add this link on your Litmos login page, please see the following steps:
- Sign in as an Account Owner.
- Go to “Account Settings"
- Navigate to the “Messages & Settings” tab, and add your desired HTML code to the “Login” box. section. An example HTML code for a simple hyperlink is shown below:
<a href="IDP_INITIATED_SSO_URL_HERE">Click here</a> to login using your network credentials. - Scroll to the bottom of the page and click “Save” to store your changes.
- Next time you logout of your Litmos account, you will see the message appear in the login box.
Comments
0 comments
Article is closed for comments.