Single Sign-On (SSO) Setup
Who this guide is for: Tenant administrators who want to allow their organization’s users to sign in to EmbayLMS using their corporate identity provider (e.g., Okta, Microsoft Entra ID, Google Workspace, Ping, ADFS).
EmbayLMS supports four SSO provider types. Choose the one that matches your identity provider:
| Provider type | Protocol | Use when |
|---|---|---|
| SAML 2.0 | SAML | Your IdP supports SAML (Okta, Ping, ADFS, generic) |
| Microsoft Entra ID | OIDC | Your org uses Microsoft 365 / Azure AD |
| Google Workspace | OIDC | Your org uses Google Workspace |
| OIDC | OIDC | Any OpenID Connect–compatible IdP |
SAML 2.0 Setup
Overview
embaylms supports SAML 2.0 SP-initiated single sign-on. Once configured:
- Users click Sign in with SSO on the embaylms login page and are redirected to your identity provider (IdP).
- After authenticating with the IdP, they are returned to embaylms and signed in automatically.
- Just-in-time (JIT) provisioning (enabled by default) creates a user account on first login — no manual account creation required.
Prerequisites
- embaylms admin role (
admin) on your tenant - Access to your identity provider’s admin console
- Your IdP must support SAML 2.0 (SP-initiated flow)
Step 1 — Get the SP (embaylms) values for your IdP
embaylms acts as the Service Provider (SP). Your IdP needs to know where to send SAML assertions. Retrieve the SP values from embaylms before configuring your IdP.
In embaylms: Navigate to Admin Panel → Settings → Single Sign-On.
Click View SP Metadata to download the XML, or note these values manually:
| Value | Format | Where to find it |
|---|---|---|
| SP Entity ID / Audience URI | URL | Shown on the SSO settings page |
| ACS URL (Reply URL) | URL | Shown on the SSO settings page |
| SP Metadata URL | URL | https://{your-tenant}.embaylms.com/api/auth/saml/{slug}/metadata |
Tip: Most modern IdPs (Okta, Entra ID) support importing SP metadata by URL. Use the SP Metadata URL above to auto-fill all SP values in your IdP.
Step 2 — Configure your IdP
Register embaylms as a SAML application in your IdP using the SP values from Step 1. See the IdP-specific guides:
Your IdP will provide the following values once the application is created — you will need them in Step 3:
| Value | Description |
|---|---|
| IdP Entity ID / Issuer | The IdP’s identifier URI |
| IdP SSO URL | The URL embaylms redirects users to for authentication |
| IdP Certificate | PEM-encoded X.509 certificate used to sign SAML assertions |
Step 3 — Enter IdP values in embaylms
- In embaylms, navigate to Admin Panel → Settings → Single Sign-On.
- Click Add Identity Provider.
- Select SAML 2.0 as the provider type.
- Fill in the following fields:
| Field | Description | Example |
|---|---|---|
| Entity ID (Issuer) | The IdP’s entity ID from Step 2 | https://your-org.okta.com/exk... |
| SSO URL | The IdP’s redirect URL from Step 2 | https://your-org.okta.com/app/... |
| Certificate | Paste the full PEM certificate from Step 2 | -----BEGIN CERTIFICATE-----... |
| Enabled | Toggle on when ready to activate | ON |
- Click Save.
Step 4 — Configure JIT provisioning (optional)
Just-in-time (JIT) provisioning automatically creates a user account in embaylms the first time someone signs in via SSO — no pre-creating accounts needed.
| Setting | Description | Default |
|---|---|---|
| JIT provisioning | Create accounts on first SSO login | Enabled |
| Default role | Role assigned to JIT-provisioned users | learner |
To configure: In the IdP settings panel, expand JIT Provisioning.
Recommended roles:
learner— Standard learner access (appropriate for most organizations)instructor— Can create and manage coursesmanager— Can view team reports and manage team enrollmentsadmin— Full admin access (only use this if all SSO users should be admins)
To disable JIT (users must be manually created before their first SSO login): Toggle JIT provisioning to OFF. Users who try to sign in before being provisioned will see an “account not found” error.
Step 5 — Test the integration
- Open a private / incognito browser window (important — avoids cached sessions).
- Navigate to your embaylms login page:
https://{your-tenant}.embaylms.com/login - Click Sign in with SSO.
- You should be redirected to your IdP’s login page.
- Authenticate with a test user account.
- You should be redirected back to the embaylms dashboard.
If using JIT provisioning, the user account is automatically created on this first login.
Configuration Reference
| Setting | Description | Default |
|---|---|---|
| Provider type | Must be SAML 2.0 for SAML SSO | — |
| Entity ID (Issuer) | IdP’s entity identifier URI | Required |
| SSO URL | IdP’s redirect URL for authentication | Required |
| Certificate | IdP’s PEM X.509 signing certificate | Required |
| Enabled | Activates the IdP configuration | true |
| JIT provisioning | Auto-create users on first login | true |
| Default JIT role | Role for JIT-created users | learner |
Troubleshooting
“SSO is not configured for your organization” The IdP configuration is missing or is set to disabled. Check Admin Panel → Settings → Single Sign-On and ensure the configuration is enabled.
“The SSO response from your identity provider was invalid” The certificate stored in embaylms does not match the certificate your IdP used to sign the assertion. Download the current certificate from your IdP and update it in embaylms.
“Your identity provider did not provide an email address” The SAML assertion does not include an email attribute. Ensure your IdP is configured to send the user’s email. See the attribute mapping table in the relevant IdP guide.
“Your account was not found” JIT provisioning is disabled for this IdP connection and the user does not have a pre-created account. Either:
- Enable JIT provisioning in Admin Panel → Settings → Single Sign-On → Edit, or
- Create the user account manually in Admin Panel → Users before they attempt SSO.
“Your account has been deactivated” The user exists in embaylms but their account is deactivated. Re-activate it in Admin Panel → Users → [user] → Activate.
OIDC Setup (Google Workspace, Microsoft Entra ID, Generic OIDC)
OIDC providers use a discovery URL and OAuth 2.0 client credentials instead of SAML certificates.
Step 1 — Create an OAuth application in your identity provider
| Provider | Guide |
|---|---|
| Google Workspace | OIDC with Google Workspace → |
| Microsoft Entra ID | SAML with Entra ID → (also supports OIDC — contact support) |
| Generic OIDC | Use your IdP’s OAuth 2.0 / OIDC application setup |
Set the redirect URI in your IdP to:
https://{your-tenant}.embaylms.com/api/auth/oidc/{slug}/callbackYour IdP will provide a Client ID, Client Secret, and a Discovery URL (the .well-known/openid-configuration endpoint).
Step 2 — Enter values in EmbayLMS
- Navigate to Admin Panel → Settings → User Management → SSO / Identity.
- Click Add Identity Provider.
- Select your provider type (Google Workspace, Microsoft Entra ID, or OIDC).
- Fill in:
| Field | Description |
|---|---|
| OIDC Discovery URL | The .well-known/openid-configuration URL from your IdP |
| Client ID | From your IdP’s OAuth application |
| Client Secret | From your IdP’s OAuth application |
- Configure JIT provisioning and click Save.
OIDC Discovery URLs by provider
| Provider | Discovery URL |
|---|---|
| Google Workspace | https://accounts.google.com/.well-known/openid-configuration |
| Microsoft Entra ID | https://login.microsoftonline.com/{tenant-id}/v2.0/.well-known/openid-configuration |
| Okta | https://{your-okta-domain}/.well-known/openid-configuration |
Managing multiple identity providers
EmbayLMS supports more than one active IdP per tenant. This is useful if you have:
- A SAML integration for most employees and a Google OIDC connection for contractors.
- A legacy SAML integration being migrated to OIDC.
All enabled IdP configurations are offered at login. Users will be redirected to whichever provider they select (or the only one if just one is enabled).
To disable an IdP without deleting it: use the toggle in Settings → User Management → SSO / Identity. This preserves the configuration for future use.