Configure Single Sign-On (SAML 2.0)
SkillStream LMS supports SAML 2.0 single sign-on with any compliant identity provider (IdP), including Google Workspace, Microsoft Entra ID (Azure AD), Okta, OneLogin, and PingFederate.
Before You Begin#
You need:
- Admin access to SkillStream LMS.
- Admin access to your identity provider.
- Your organization's domain(s) — e.g.,
acmecorp.com.
Step 1: Start the SSO Setup in SkillStream#
- Go to Admin → Settings → Security → Single Sign-On.
- Click Configure SAML.
- Note the values shown — you will enter these into your identity provider:
| SkillStream value | Where to use it |
|---|---|
| ACS URL (Assertion Consumer Service) | Enter in your IdP as the "Reply URL" or "ACS URL" |
| Entity ID | Enter in your IdP as the "Audience" or "SP Entity ID" |
| NameID format | Set to EmailAddress in your IdP |
Step 2: Configure Your Identity Provider#
Google Workspace#
- Open the Google Admin console → Apps → Web and mobile apps → Add app → Add custom SAML app.
- Enter a name (e.g., "SkillStream LMS") and click Continue.
- Copy the SSO URL, Entity ID, and Certificate from Google — you will enter these in Step 3.
- In the Service provider details screen, paste the SkillStream ACS URL and Entity ID.
- Set the Name ID format to "Email" and Name ID to "Basic information > Primary email".
- Click Finish.
Microsoft Entra ID (Azure AD)#
- Open the Azure portal → Enterprise applications → New application → Create your own application.
- Name it "SkillStream LMS", select Integrate any other application (Non-gallery), click Create.
- Go to Single sign-on → SAML.
- In Basic SAML Configuration, paste the SkillStream Entity ID into "Identifier" and the ACS URL into "Reply URL".
- Under SAML Signing Certificate, download the Certificate (Base64).
- Copy the Login URL from the "Set up SkillStream LMS" section.
Okta#
- In Okta Admin, go to Applications → Create App Integration → SAML 2.0.
- Name the app "SkillStream LMS" and click Next.
- Paste the SkillStream ACS URL into "Single sign-on URL".
- Paste the SkillStream Entity ID into "Audience URI (SP Entity ID)".
- Set Name ID format to "EmailAddress" and Application username to "Email".
- Click Finish. On the Sign On tab, click View SAML setup instructions to get the IdP metadata.
Step 3: Enter Your IdP Details in SkillStream#
Back in Admin → Settings → Security → Single Sign-On:
- Paste your IdP's SSO URL (Login URL).
- Paste your IdP's Entity ID.
- Paste the X.509 certificate from your IdP (the full PEM text including
-----BEGIN CERTIFICATE-----). - Click Save configuration.
Step 4: Test the Connection#
- Click Test SSO connection on the configuration page.
- A new tab opens and redirects you through your IdP login.
- If successful, you see a green confirmation message.
- If you see an error, check that all values were copied accurately (no extra spaces or line breaks).
Step 5: Enable SSO for Your Domain#
Once the test passes:
- Under SSO Enforcement, enter your email domain(s) — e.g.,
acmecorp.com. - Choose an enforcement mode:
- Optional — users can log in with email/password or SSO.
- Required — users on your domain must use SSO; password login is disabled.
- Click Save.
Attribute Mapping (Optional)#
To automatically populate user profiles from your IdP, map SAML attributes:
| SkillStream field | Common SAML attribute name |
|---|---|
| First name | firstName or givenName |
| Last name | lastName or sn |
| Department | department |
| Job title | jobTitle or title |
Go to Admin → Settings → Security → SSO → Attribute mapping to configure these.
Troubleshooting#
Error: "SAML response signature is invalid" The certificate in SkillStream does not match your IdP's signing certificate. Re-download the certificate from your IdP and paste it again.
Error: "User not found" The email address in the SAML assertion does not match any user in SkillStream. Ensure your IdP sends the user's email as the NameID and that the user has been invited to SkillStream.
Error: "Audience restriction mismatch" The Entity ID in your IdP does not match the Entity ID shown in SkillStream. Update the "Audience URI" in your IdP to match exactly.
Was this article helpful?
Still need help?
Our support team is ready to assist with anything not covered here.