Open edX SSO and identity integration

Open edX can sign learners and staff in through your existing identity provider using SAML 2.0, Shibboleth, OAuth2 or LTI. This page covers the decisions, build sequence, effort drivers and checks that make the integration hold up in production.

On this page

How Open edX SSO fits into your existing login estate

If your university, enterprise or public body wants staff and learners to sign in to Open edX with an identity provider you already run, the work is choosing the right protocol for each audience and then wiring attributes, account linking and provisioning correctly. Open edX supports third-party authentication through OAuth2 providers, SAML 2.0, Shibboleth and LTI, so the design question is rarely whether it can connect to your login estate, but which mechanism suits each group of users and how identities are matched once they arrive.

The work is harder than it looks because a login is only the first step. The identity provider must release the right attributes, such as a stable unique identifier and a verified email address, and the platform must decide how those attributes map to a local account. Email matching is the usual trap: if a learner already has a local account under a different address, or two records share one address, sign-in can create duplicate accounts or link the wrong person. Role mapping adds another layer, since staff who author courses, instructors and learners need different permissions, and those permissions usually depend on group claims or attributes that your directory may not expose by default.

Open edX also has to keep working as the platform changes. Third-party authentication settings live in the deployment configuration, which in most installs is managed through Tutor, so changes to Tutor versions, plugins or the release you run can affect how providers, attribute mappings and login pipelines behave. Confirm each identity provider setting against the current Open edX documentation before any upgrade. Open edX states that the latest named release is the only supported release, and the current named release is Verawood, so an SSO configuration validated on an older release should be retested on the release you are moving to rather than assumed to carry over.

Before scoping this work, ask your identity team four questions: which protocol each audience uses, which attributes are reliably populated in the directory, how existing local accounts will be matched, and who owns group-to-role decisions after go-live. Ask whether a Shibboleth or SAML federation already exists for other services, because reusing it often changes the protocol choice. Confirm with your identity provider vendor which attributes and claims they can release, and record the answers, since they determine the attribute mapping, linking rules and testing you will need to budget for in a fixed-scope plan.

Choosing SAML 2.0, Shibboleth, OAuth2 or LTI for Open edX sign-in

This table compares the identity options Open edX supports for sign-in, the audience each one fits, and the ongoing work each adds to operations. Read each row against your learner and staff populations, and treat legacy CAS and SSL client certificate support as a risk to confirm, not a starting point. The main takeaway is that every extra identity provider adds configuration, certificate and account-linking work that continues after go-live.

OptionWhen it fitsOperational cost
OAuth2 (Azure Active Directory, Google, Facebook, LinkedIn)Learners who sign in with a social account or a Microsoft account, or an organization already running Azure Active Directory.Provider app registrations and redirect URIs per environment, plus secret rotation. Confirm each provider's data and policy terms before enabling it.
SAML 2.0 enterprise identity providerStaff, employees or corporate learners who authenticate through the organization's own enterprise identity provider.Metadata exchange, signing certificate expiry tracking, and an agreed attribute mapping with the identity team. Each change needs a test login.
Shibboleth (federated academic identity)Universities and institutions that already join an academic identity federation and rely on federated attributes.Federation membership and metadata agreements, attribute release policies, and entitlement mapping. Confirm federation requirements with your federation operator.
LTI launch-based authenticationEmbedding external tools in courses, where the launch carries identity into a tool. It is not a general sign-in method for the LMS.Tool keys and shared secrets per tool, launch configuration per course, and conformance checks. Confirm LTI Advantage support against your Open edX release.
Legacy CAS and SSL client certificatesOnly where an existing institutional system requires them and the team has confirmed support for the Open edX release in use.Provisional support, so treat as a risk. Expect custom code, extra security review and possible rework at each release upgrade.
One identity provider per audienceEach audience (for example learners, staff and partners) has a single, clearly owned identity source.Simpler attribute mapping, one support path and fewer duplicate-account cases. Each audience still needs its own configuration and test cycle.
Several identity providers on one siteMixed populations need to sign in through different sources, with account linking between them.Multiplies metadata, login options, linking rules and duplicate-account handling. Plan linking policy and support ownership before go-live.

Build sequence for Open edX SSO, from IdP registration to first login

This sequence takes an Open edX deployment from identity provider registration to a verified first login, with the provider enabled for the intended audience only after staging tests pass. Each step closes with a check the team can record, so the handover to production rests on evidence. Exact setting names and provider options depend on the supported Open edX release and should be confirmed against its documentation.

  1. Gather identity provider metadata and attributes

    Your team and the identity provider administrator collect the metadata document or endpoint details for the chosen protocol, whether SAML 2.0, Shibboleth or OAuth2. Agree the attribute list in writing: which claims or assertions carry the email address, full name and username, and whether the username is stable enough to serve as an account key. Confirm which protocol versions and provider options your supported Open edX release documents, since these can change between releases. Done when the team holds the metadata file or client details, a sample attribute set from a test user, and a signed-off attribute list.

  2. Register Open edX with the identity provider

    The identity provider administrator creates a relying party (SAML) or client application (OAuth2) for the Open edX LMS. Set the callback and assertion consumer URLs to the LMS hostname your Tutor configuration will serve, and use HTTPS for every endpoint. Exchange metadata in both directions: Open edX needs the provider's metadata, and the provider needs the Open edX entity ID or client credentials. Done when the provider lists the application and the metadata exchange validates in both directions without errors.

  3. Configure the provider through the Tutor path

    The platform engineer adds the provider settings through the Tutor configuration path, typically a plugin or configuration override that sets the LMS third-party authentication options, then regenerates and redeploys the LMS. Keep client secrets and signing certificates out of version control and load them through Tutor's secret handling. Confirm the exact setting names, and whether the provider is created in the LMS admin interface or through settings, against the documentation for your release. Done when the LMS starts cleanly and the provider appears on the login page in the test environment.

  4. Map email, name and username attributes

    Map each provider attribute to the matching LMS account field and define the rule for generating or accepting the username. Test with one account that carries the full attribute set and one that omits an optional attribute, since missing values are a common cause of failed logins or duplicate accounts. Record the mapping in the configuration documentation, including the field names confirmed for your release. Done when a decoded SAML assertion or token from the test user shows the expected email, name and username values, and the LMS account record holds those same values.

  5. Test a login in a non-production environment

    Run the first login end to end in a staging LMS that uses the same provider configuration production will use, with a dedicated test identity. Watch the provider logs and the LMS logs for the assertion, the redirect back to Open edX and the account creation. Repeat the login with the same user and confirm that the second sign-in reuses the same account and creates no duplicate. Check how the release handles linking an existing local account with the same email address. Done when a single account is created on first login and the same account is reused on the next.

  6. Enable the provider for the target audience

    Decide which learners and staff can use the provider, such as all learners, one organization or staff only, and enable the provider for that audience in the configuration. Keep local password login available for administrators during the initial rollout so they can still reach the site if the provider fails. Agree the change window with the identity team and name the person who watches the first production logins. Done when a pilot group signs in through the provider in production and support has a shared list of login issues to track.

  7. Document and rehearse the rollback path

    Write down how to disable the provider, restore the previous LMS configuration and move affected users back to local login. Record the Tutor configuration version, the steps for rotating the provider secret and the owner who can authorize the change. Rehearse the rollback in staging before go-live, including the check that existing accounts remain intact. Done when the team has a written runbook that another engineer has followed successfully in staging, and the rollback has been run once without altering production accounts.

How Open edX account linking and provisioning behave on first login

When a learner signs in to Open edX through a third-party identity provider, the platform has to decide which local account that identity belongs to. The decision is made by the third-party authentication (TPA) layer in the LMS, which records a link between the provider's identity and a local user. Before you configure a SAML 2.0, Shibboleth, OAuth2 or LTI-based sign-in, confirm in your release how the LMS matches an incoming identity to an existing account, which attributes it uses for that match, and what it does when no match exists. Behavior in this area has changed between named releases, so verify it against the release you plan to run rather than relying on older guides or forum posts.

The most common failure is a duplicate account. If matching depends on email address, a learner whose email differs between the university directory and the platform, or whose address changed after enrollment, can end up with a second account. That account holds no progress, no enrollments and no certificates, and the learner may not notice until support is contacted. Ask the identity owner which attribute is stable (a persistent identifier such as an employee or student number is usually safer than email), and decide how renamed users, reissued addresses and shared mailboxes will be handled before go-live. Shared mailboxes are a particular risk, because two people can present the same email value through the same provider.

Two provisioning models need a decision. Just-in-time creation makes an account the first time a learner signs in, which keeps the roster out of the platform but leaves enrollment to a separate step and gives no advance view of who will arrive. Pre-provisioned accounts loaded from a roster let course enrollments and cohort groups exist before the learner's first login, which suits paid or mandatory courses, but the roster must be kept current as people join, leave and change names. Either way, check how enrollment, audit and certificate records are tied to the account that signs in, since a mismatch here is hard to repair after learners have started a course.

Studio authors and course staff need separate treatment. Granting access to Studio or to instructor tools through a federated login should not follow automatically from an identity provider group without a documented mapping. Define which provider groups or attributes correspond to which Open edX roles, who approves each mapping, how changes are recorded, and how access is removed when someone leaves a course team. Keep staff and course roles out of any default that applies to every federated user.

Test these behaviors with real identities before any learner is onboarded. Include renamed users, changed email addresses, shared mailboxes, learners who sign in through two providers, returning users whose attribute values differ from the first login, and a staff account that should not gain Studio access. Record what the LMS did in each case and agree who fixes duplicates and how. Confirm these results against your chosen release and your identity provider's configuration, since both determine the outcome.

What drives Open edX SSO effort and cost

This table lists the factors that most change the work of enabling Open edX third-party authentication, and what each one asks of your team. Read each row as a lever: the middle column explains why it moves effort, and the right column names the step that keeps it contained. The main takeaway is that attribute agreements and a narrow first release do more to control cost than any single technical choice.

DriverWhy it changes effort or costHow to keep it down
Number of identity providers and audiencesEach SAML 2.0, Shibboleth, OAuth2 or LTI integration needs its own configuration, test cases and login path, and each audience (learners, staff, partner institutions) may need different attributes or access rules.Limit the first release to one provider and one audience, then add providers as separate, tested increments.
Attribute quality at the identity providerMissing, inconsistent or changing claims such as email, name, or a stable user identifier force mapping rules, data cleanup and repeated testing with the IdP owner.Agree an attribute contract early in writing: which claims are sent, their format, which one is the stable identifier, and how changes are announced.
Just-in-time versus roster-based provisioningJust-in-time creates accounts on first login and is simpler to start with. Roster-based provisioning requires a source file or feed, scheduled jobs, and reconciliation when people leave or change roles.Start with just-in-time login unless the business requires pre-created accounts or enrollment before first sign-in, and confirm that requirement before scoping.
Existing account data to reconcileLearners who already have local Open edX accounts may hold email addresses or usernames that conflict with the identity provider, so accounts must be matched, merged or linked case by case.Run a reconciliation report on a copy of the production data before go-live, and decide the linking rule (email match, identifier match or manual review) in the design phase.
Number of environments (development, staging, production)Each environment needs its own identity provider registration, redirect URLs, certificates or client secrets, and test accounts, which multiplies setup and verification work.Use Tutor configuration with environment-specific settings, and ask the IdP owner for test tenants or test registrations before development starts.
Customization of login pages or brandingCustom login, registration or account-linking screens depend on the platform's authentication templates and the frontend plugin slots available in the release you run, so each change needs testing after upgrades.Keep login changes to the minimum the brand requires and use supported extension points rather than editing core templates.
Compliance evidence for access controlAssessors may ask for documented access decisions, role mapping, deprovisioning steps, and logs showing who signed in and how accounts were created or linked. Producing this evidence adds documentation and test effort.Define the access model, role mapping and deprovisioning process as deliverables from the start, and ask your auditor which evidence format they expect.
Release currency and upgrade pathOpen edX supports only the latest named release, so authentication code, plugins and identity settings must be checked again at each upgrade cycle.Confirm with your provider how identity configuration and custom authentication code are tested during upgrades, and budget for that testing as recurring work.

SSO differences for single-node, multi-node and Kubernetes Open edX

A single-node deployment runs the LMS, Studio and supporting services on one application host, so there is one place to configure identity providers and one set of logs to read. This is the simplest environment to prove that a provider works before other systems depend on it. Test here first, then carry the verified configuration forward to other models.

  • Provider configuration: enter the provider settings in the LMS third-party authentication admin, then confirm the callback URL registered at the identity provider matches the public hostname exactly.
  • Test accounts: sign in with test users covering first login, returning login and a learner who already has a local account.
  • Logout behavior: confirm whether signing out of the LMS also ends the identity provider session, and document the result.
  • Attribute mapping: check which claims or assertions arrive for name and email, and how the platform matches them to existing accounts.

Before moving on, confirm that provider login completes end to end on the exact hostname and TLS setup learners will use, because the other models assume this baseline works.

Protecting IdP secrets, certificates and attribute trust

Single sign-on turns the identity provider and its trust settings into part of the Open edX attack surface. The controls below cover the credentials, certificates, attributes and admin settings that decide who can log in and as whom, plus the evidence you need to review them. General TLS, cookie and Django hardening is covered in the Open edX security hardening topic.

Keeping OAuth2 and SAML secrets out of source

OAuth2 client secrets and SAML signing and encryption private keys should live in a secrets store or environment injected at deploy time, never in a Tutor configuration file committed to a repository. Ask your team where each credential is stored, who can read it, and whether the deployment pipeline logs its values. Confirm this for every identity provider you enable, including test tenants.

Rotating certificates and client secrets

Set a rotation schedule for each SAML signing and encryption certificate and each OAuth2 client secret, and rotate immediately when a staff member with access leaves or a secret may have been exposed. Rotation touches both the identity provider and the Open edX configuration, so plan a short overlap window where old and new material both work. Record the expiry date of every certificate in your operations calendar.

Limiting which attributes are trusted

Map only the identity provider attributes that Open edX genuinely needs, such as email and a stable user identifier, and do not let attributes like group or role membership grant course staff or platform privileges unless a reviewed rule requires it. Check how the attribute mapping handles missing or multi-valued claims. Review the mapping whenever the identity provider adds new claims.

Restricting who edits third-party auth settings

Changes in the Django admin for third-party authentication configurations can redirect logins to a different provider or accept a different certificate, so they carry the same weight as a code change. Limit edit rights to a named group of platform administrators, require a second person to approve changes, and keep the admin account separate from everyday course staff accounts. Confirm that changes are attributable to a person.

Verifying signed assertions and audience values

Configure the SAML service provider to require signed assertions, check the expected issuer, and validate the audience restriction against your Open edX entity ID, so that an assertion issued for another application cannot log a learner in. For OAuth2 and OpenID Connect, confirm that tokens are checked for the expected client identifier and issuer. Test with a deliberately invalid assertion in a staging environment before go-live.

Logging authentication events for review

Capture login successes and failures, new account links, provider configuration changes and attribute-driven account updates, and forward them to your central log platform with retention that matches your policy. Confirm that the logs record which provider was used and do not contain assertions, tokens or secrets. Assign an owner who reviews failed-login spikes and unexpected linking events on a set cadence.

Testing Open edX SSO logins and failure modes before go-live

Before any learner, instructor or administrator is routed through single sign-on, the team should run a written test plan that covers both the logins that should succeed and the ones that must be refused. Open edX third-party authentication can sit in front of the LMS and Studio, so a misconfigured provider can affect both learner access and staff access to course authoring. Treat the test plan as a deliverable with named test cases, expected results, the person who ran each case and the evidence captured, rather than a quick manual check by whoever configured the integration. The happy-path cases should be run for every identity provider you enable, whether that is a SAML 2.0 provider, a Shibboleth federation, or an OAuth2 provider such as Azure Active Directory. For each provider, test an audience that matches a real population, such as learners, course staff and platform administrators, and test both a first-time user and a returning user. Include an account-linking case where a person already has a local Open edX account with the same email address, and confirm what the platform does with it. Your identity team should confirm which attributes the provider releases, because the mapping from those attributes to Open edX profile fields and role assignments determines what the test actually proves. The failure cases matter more. Test a user who exists in the directory but is outside the allowed group, and confirm that access is denied. Replay an expired assertion and a previously used assertion, and confirm both are rejected. Send an assertion with the wrong audience or a redirect URI that does not match the registered value. Simulate an identity provider outage and record what learners see and whether any local fallback login is available. Finally, test logout propagation: sign out from the identity provider and from Open edX, and confirm the session ends where your policy requires. A failed login should fail closed. The learner should see a clear error, and the platform should not create an account, attach a role or grant course access as a side effect. Confirm this with a test run on each failure case, then check the user table and role assignments directly afterward. If any failure path creates a record, stop the go-live until the configuration is corrected and the case is rerun. The sign-off checklist should be owned jointly by the security team and the platform owner. It should list each test case with its result, the evidence location, any accepted deviations and the named approver. Security signs off on the failure behavior and the attribute and group controls. The platform owner signs off on the happy paths, the outage procedure and the rollback plan. Neither signature should be given until the other owner has reviewed the same record.

Questions buyers ask about Open edX SSO integration

What does Open edX SSO integration cost and what drives the price?

The cost depends mainly on the number of identity providers, the quality of the attributes each one sends, the provisioning model, and how many environments need the integration. A single SAML 2.0 provider with clean attributes and one production environment is the simplest case. Each additional provider adds configuration, testing and a separate set of trust settings. Provisioning, which covers how learner accounts are created, updated and linked to existing accounts, usually adds more work than the login step itself. DeployOpen does not publish a price list. Ask for a quote built from a written scope that lists each provider, each environment, the attribute contract and the provisioning rules. Expect the quote to separate one-time build work from any recurring support you choose to buy.

How long does Open edX SSO integration take to deliver?

The duration depends on the scope and on how quickly the identity provider owner can respond. Work that depends on an external team, such as an IdP administrator who must register a service provider, supply metadata or confirm attribute names, moves at that team's pace. Test accounts, a named approver and a staging environment also affect the schedule. Ask for a timeline in the written scope that names which steps depend on the client or a third party, and how many review rounds are included. Avoid any timeline that does not state its assumptions about IdP responsiveness.

What does the client need to provide for SSO work on Open edX?

Plan to provide five inputs before the build starts:

  • IdP admin access or a named contact who can register the Open edX service provider and change its settings.
  • Metadata from each identity provider, including signing certificates and endpoints for SAML 2.0 or client details for OAuth2.
  • An attribute contract that states which claims carry the learner's identifier, email and name, and how they are formatted.
  • Test accounts that cover the learner, staff and edge cases such as missing attributes.
  • A named approver who signs off the scope, the test results and the go-live decision.

Missing any of these usually stalls the work, so confirm them in the scope document.

Can our internal team set up Open edX SSO without a partner?

Yes, if the team can read and change the Tutor configuration, test SAML or OAuth2 login flows end to end, and own the secrets that the integration needs, such as signing keys and client secrets. Open edX supports SAML 2.0, Shibboleth and OAuth2 providers, including Azure Active Directory by default, so the feature exists in the platform. The harder parts are usually provisioning, account linking and the attribute mapping, which need testing against real identity data. Teams without this experience often choose a fixed-scope partner engagement for the build and then keep the configuration in their own repository. Confirm each provider's behavior against its current documentation before you commit.

How does DeployOpen scope an Open edX SSO project?

DeployOpen scopes SSO work as a fixed-scope engagement with written deliverables agreed before work starts. The scope usually lists the identity providers, the environments, the authentication method for each provider, the attribute contract, the provisioning and account linking rules, the test cases and the handover material. The configuration is built inside your own infrastructure, whether that is your cloud account, data center or air-gapped network. Changes outside the written scope go through a change request with its own quote. Ongoing support, upgrades and testing are available as retainers, separate from the initial build.

Which identity protocols does Open edX support for third-party login?

Open edX third-party authentication supports OAuth2 providers, including Google, Facebook, LinkedIn and Azure Active Directory by default, along with SAML 2.0, Shibboleth and LTI. Older, provisional support exists for CAS and SSL client certificates. Choose the protocol based on what your identity provider offers and what your attribute data looks like. Confirm the exact provider settings and any limits for your Open edX release with the current supported identity providers documentation, because provider behavior and configuration keys can change between named releases.

What breaks most often in Open edX SSO and what should we check?

The most common failures come from attribute mismatches, such as an email claim that is missing or formatted differently from the learner record, and from certificate or metadata changes on the identity provider side that are not communicated to the platform team. Account linking can also create duplicate learner accounts when identifiers differ between systems. Check that every test learner maps to exactly one account, that expired certificates have a renewal owner, and that the login flow is verified after each Tutor upgrade. Keep a record of the attribute contract and review it whenever the identity provider changes.

How DeployOpen scopes, builds and hands over Open edX SSO

DeployOpen plans and builds Open edX third-party authentication inside your own infrastructure, connecting your identity provider to the LMS and Studio under a written, fixed scope. Each stage ends with documented configuration, tested login paths and a clear handover to the team that will run the platform.

How we scope

  • We confirm which identity providers are in use, such as SAML 2.0, Shibboleth, Azure Active Directory or another OAuth2 provider.
  • The written scope names the login flows, account linking rules, provisioning method and any LTI launches that are included.
  • We agree which Open edX environments, such as staging and production, are covered and which Tutor hosting model they run on.

How we build

  • We configure the chosen third-party authentication backends in the Open edX settings and Tutor configuration within your infrastructure.
  • We set up attribute mapping so learner identity, email and role claims arrive in the expected fields before any user logs in.
  • We test first login, returning login, account linking and logout across the LMS and Studio using test accounts from your identity provider.

How we hand over

  • You receive documentation of the identity provider settings, attribute mappings, secrets locations and the steps for rotating certificates or client credentials.
  • We provide a runbook covering common failures such as attribute mismatches, expired certificates and duplicate accounts, with the checks to run for each.
  • Your team walks through the test results and the configuration so that administrators can make routine changes after the engagement ends.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer, which can cover identity changes after go-live.
  • Identity settings are retested whenever Open edX moves to a new named release, because only the latest named release is supported.
  • Ask any quote to state what counts as in scope after handover, such as new providers, certificate renewals and response times.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.