DISCLAIMER: Some content in this article outlines how to use functionalities released in Docebo 7.8, which will be publicly released to all clients in the beginning of November 2019. If you see differences between this article in your platform, check back at that time for updated content.
Disclaimer: This article outlines how to configure Docebo’s newer, simplified SAML app, which is the default version used for those that have either activated their Docebo platform or activated the SAML app in their existing platform on or after November 12, 2019. If you activated the SAML app in your platform before November 12, 2019, refer to this article.
By activating the SAML app in Docebo, you can allow users to log into their learning platforms using credentials from active sessions of other web platforms. This article will give you a step-by-step process of how to activate and configure the app.
Please Note: To prevent improper SAML configurations, Docebo has implemented a blocker as of April 2018. If the connection continues to bounce back and forth, Docebo has added a stopper that will show an error page. Additionally, the browser that started the loop will be timed out for one hour.
This app is available for Docebo Enterprise plan clients and it is optional for Growth plan clients.
Activating the SAML App
To activate the app, log into your platform as the Superadmin. Access the Admin Menu from the gear icon in the header, then press the Add New Apps button.
Select the Third Party Integrations tab from the tab menu. Find the SAML 2.0/ADFS Integration app in the list of apps in this tab, then press the Contact Us button in the app’s row. Read the description in the pop up box, then press the Contact Us Now button.
From here, Docebo will reach out to you regarding activating the app in your platform. Docebo will activate the app in your platform on your behalf. Once it’s activated, you can begin the configuration. Please refer to the section below to learn more.
Configuring the SAML App
To begin the configuration for this app, access the Admin Menu by scrolling your mouse over the gear icon. Then, find the SAML section in the Admin Menu, and press the Settings subitem. You will then be redirected to the settings page. Begin by flagging the check box in the Activation section. By default, this setting is not flagged when you first activate the app in your platform. You will need to enable this switch to begin configuring the app in your platform.
Then, insert the SSO URL into the text field in the SSO URL section, as well as the Issuer in the text field in the Issuer section. Please note that both of these are mandatory fields. You should ask your IT manager to provide you with this information, as necessary, and both are used to authenticate the app with your identity provider.
You then need to upload your X509 certificate by pressing the Upload Certificate button in the X509 Certificate section. Again, this is a mandatory step in your configuration. When you upload this certificate, your platform validates the public key that you’re uploading. Once the upload is complete, a message will appear in the X509 Certificate section to inform you if the uploaded certificate is valid or not. You can press the View Details button to view how Docebo read and validated your certificate, including the validity status and expiration dates. Please note that if Docebo is unable to validate your certificate, you are not able to proceed with the configuration. Since SHA-1 has been deprecated in 2011, for security reasons the recommended encryption algorithm is SHA-256. When SHA-1 is used, the Details page will display a warning sign.
Please Note: Your platform will automatically use the expiration dates in your uploaded X509 Certificate to send all platform Superadmins mandatory notifications about necessary updates to your SAML configuration, such as when your expiration date is approaching. Notifications cannot be modified or disabled. In this way, you are able to update your SAML configuration before it expires, so your users aren’t blocked from logging into the platform.
Then, you need to upload your Private Key File (PEM) and Certificate File (CRT) into the Service Provider Signing section using the corresponding Upload File(s) button. This is not a mandatory step in the configuration, but you must upload these certificates if you want to use the single logout (SLO) feature.
Please Note: You cannot upload only one of these files. You must upload both the PEM and the CRT file. Please note that neither file can have any additional information (one can only have the private key, and the other can only have the cert), or you will receive an error when trying to configure the app. Here is an example of a cert in PEM format, and here is an example of a private key file in PEM format.
Just as with the X509 Certificate, your PEM and CRT certificates will be validated upon upload. Once the upload is complete, a message will appear in the X509 Certificate section under each Upload File(s) button to inform you if the uploaded file is valid or not. You can press the View Details button to view how Docebo read and validated your certificate, including the validity status and expiration dates. Please note that if Docebo is unable to validate your certificate, you are not able to proceed with the configuration.
Please Note: Your platform will automatically use the expiration dates in your uploaded PEM and CERT files to send all platform Superadmins mandatory notifications about necessary updates to your SAML configuration, such as when your expiration date is approaching. Notifications cannot be modified or disabled. In this way, you are able to update your SAML configuration before it expires, so your users aren’t blocked from logging into the platform.
Now, you have configured all of the mandatory fields (Issuer, SSO URL and X509). If you do not want to configure the unique field, SSO behavior, logout behavior, or user provisioning, you can simply press Save Changes. Once you press the Save Changes button at the bottom of the page, you should then copy the Login URL and the Logout URL that you see in the SAML 2.0 SP Metadata section to pass to your identity provider.
If desired, you can press the Download button in the SAML 2.0 SP Metadata section to download the metadata file, but the only mandatory fields that you need to pass are the Login URL and Logout URL provided in the same section.
If you would like to configure the logout behavior, SSO Behavior, and/or User Provisioning, then do not press Save Changes yet. You can refer to the sections below to learn more about each function.
In the Logout Behavior section, you can flag the option for the user to automatically be logged out of the Identity Provider when he or she logs out of the platform. Please note that you cannot enable this option unless you have already uploaded validated PEM and CRT files in your platform. In order for the logout request to be accepted by an Identity Provider, typically the logout request must be signed, hence why you need both files to flag this option.
When this option is selected, the Logout Endpoint text field is shown for you to define the URL where users will land upon logging out from the platform and from the Identity Provider. Thanks to this configuration, users can land on a different URL from the one used for SSO. When the Logout Behaviour option is selected, it is mandatory to insert a logout endpoint.
To configure the SSO behavior, you can choose between two different options. Choose whether you want to show the standard platform login page, or if you want to automatically redirect to the Identity Provider. If you flag the first option, you can then flag whether you want to show the SSO button on your platform’s login page.
If you flag the option for an Automatic redirect to Identity Provider, you can set a specific logout landing page when your users logout of the platform instead of keeping the standard logout page. Use the text box to type in the URL of the logout landing page.
Please note: The Show standard login page option is supported by Docebo’s Go.Learn mobile app. If you set this option and you use SAML on your mobile app, remember that it is necessary to set also the Show SSO button on login page. The Automatic redirect to identity provider setting (and as a consequence the possibility to add a specific logout landing page) is not supported by the Go.Learn mobile app.
This section allows you to instantly create a user who is present in your Identity Provider but is not yet present in the learning platform database. Begin by flagging the Enable option. You can also flag the option to lock provisioned user fields, meaning that users cannot edit details in their user profiles that have been created via SAML. When editing the user profile, the options will be greyed out.
If you have users that already exist in both databases, you should flag the option to update the user information for the existing users. Please note that not flagging these options results in needing to manually register (enable option) or update your users (update information) in the platform.
Now, you need to specify which additional fields you want to associate between your Identity Provider and Docebo, then match the names of the fields in Docebo with the name of the fields in the Identity Provider (attribute statement).
Please note that each field must be unique, meaning that you cannot apply the same claim to multiple fields. In the text box, type in the name of the additional field in the platform, then press the Add button. The additional field will appear in a list below, with the field name and field category automatically filled in by your platform. Insert your Identity Provider attribute statement into the corresponding text box.
You can define the language for the users created in the platform via SAML using the Language field. In doing this, once a user is created, the platform of said user will be in the language set via the SAML claim that you configured. Once you’ve added the Language field, insert the same string into the Attribute Statement textbox that you inserted into the field in your identity provider that you’re matching.
Please Note: In your language field in your identity provider, the string must use the one of the codes that the platform uses to identify languages (en = English, de = German, etc.). For a full list of these codes, refer to this list. If the code given for this field for a specific user does not match any of the language codes of the platform, the user will be given the set default language of the platform upon activation.
When you’re finished, press Save Changes. Now you can download the XML file and import it inside of your Identity Provider in order to setup the related authorization and complete the process.
Best Practices for this App
In order to make the most of this integration, you should set up groups that are auto-populated, then use Docebo’s Enrollment Rules App to automatically enroll these groups into courses or learning plans. Thus, when a new user is created, you do not have to manually assign them to groups, courses or learning plans.
Please note that in order to correctly pair newly added SAML fields and newly added platform additional fields and use them to auto-populate groups, you must always logout of both the learning platform and the identity provider. Therefore, please make sure you’ve enabled the option in the Logout Behavior section. Without flagging this option, this user provisioning process will not occur.
Additionally, you can use the following SSO links to automatically access some areas of your Docebo platform with an SSO login:
- LMS homepage: /lms/index.php?r=site/sso&sso_type=saml
- Into a Specific Course: /lms/index.php?r=site/sso&sso_type=saml&id_course=18
- Catalogs Area: /lms/index.php?r=site/sso&sso_type=saml&destination=catalog
- Learning Plans: /lms/index.php?r=site/sso&sso_type=saml&destination=learningplan
For certain SAML Identity providers, the standard SAML endpoints provided by the XML metadata are not allowed. In this case, Docebo has simplified endpoints. For those using Docebo 6.9 or higher, Docebo has SAML 2.0 metadata without the query string part available, thus making it acceptable by OpenSAML:
Please note that Docebo is available in the AWS SSO Catalog. For more information, refer to this PDF.