How Odoo SSO fits into your existing identity setup
If you already run a directory or identity provider, you can have staff sign in to Odoo with those credentials instead of local Odoo passwords, but only through the login methods Odoo documents: LDAP, Google Sign-In, Microsoft Azure OAuth and Facebook sign-in, with two-factor authentication available on top. SAML is not among the documented methods, so if your identity provider only speaks SAML, treat that as a separate decision rather than assuming Odoo will accept it. The right path depends on what your directory holds, how your staff already authenticate and who needs access from outside the corporate network.
LDAP is the usual fit when your source of truth is an on-premise directory and you want one set of credentials across internal systems. Odoo's documented LDAP support can create a user on first login from a template, which saves manual account creation but means every new directory account gets whatever template permissions you set. Google Sign-In and Microsoft Azure OAuth suit organizations whose staff already live in those cloud identity platforms. Facebook sign-in is rarely a fit for business systems and should be confirmed against your own security policy before anyone enables it. Two-factor authentication is a control you configure alongside these methods, not a substitute for choosing one.
This is harder than it looks for two reasons. First, access groups in Odoo must line up with what your directory actually holds. If your directory groups do not map cleanly to Odoo access rights, first-login templates will either over-grant or leave users unable to do their jobs, and someone will end up editing permissions by hand. Second, offboarding depends on the login path. A user removed from the directory may still hold an active Odoo account, a local password or a session, depending on how they first signed in. Confirm with your own environment, and with Odoo's current documentation for your version, how disabling a directory account propagates to Odoo before you rely on it.
Before you choose, list the directory attributes you will rely on, the Odoo groups each one should map to, and the owner of the offboarding procedure for each login path. Run a test with a leaver account and a mover account in a non-production database, and check which accounts can still sign in afterward. Those results will show whether a single login path is enough or whether you need a documented exception for local accounts such as service or break-glass users.
Which Odoo login methods and settings are involved
An Odoo sign-in integration touches several settings that live in different places and belong to different owners. Mapping each component before the build starts shows who must approve, configure and test it, and which settings depend on the edition and plan you run.
LDAP authentication configuration
Odoo can check user passwords against an LDAP directory, so the server connection, bind account, search base and login attribute all need to match your directory. The directory team usually owns the bind account and search scope, while the Odoo administrator enters them in the server settings. Confirm in your Odoo version and edition that LDAP authentication is available, and test with a non-administrator account before you change the login flow for everyone.
Google and Microsoft Azure sign-in
Google Sign-In and Microsoft Azure OAuth are configured in Odoo with client credentials issued by the provider, so the identity provider administrator creates the application registration and redirect addresses. The Odoo administrator then enters the client ID and secret and confirms the sign-in buttons appear for the correct domains. Check the redirect addresses against your public Odoo URL, because mismatches are a common cause of failed sign-ins.
User creation on first login
When LDAP authentication is enabled, Odoo can create a user record the first time a directory user signs in, using a template user to set the initial access rights. The template decides what that person can see and do from day one, so it is a security decision, not a convenience setting. Agree the template with the business owners of each application and review it whenever apps are added or removed.
Two-factor authentication
Two-factor authentication is a separate setting that adds a second check after the password or federated sign-in succeeds. Decide with the security team whether it applies to all users, to administrators only, or to users of specific access groups, and confirm which methods your Odoo version supports. Document the recovery process for lost devices, because the Odoo administrator will receive those requests and must verify identity before resetting anything.
User and access group records
Odoo stores each user, their company memberships and their access groups as records, and access groups decide which apps, menus and record rules apply. The directory or identity provider groups must be mapped to these Odoo groups deliberately, or users will receive more or fewer rights than intended. The Odoo administrator owns these records, and the business application owners should approve the group design before go-live.
Edition and plan requirements
Available login methods, integration features and hosting options depend on your Odoo edition and plan, and the Odoo administrator must confirm them before design starts. Ask your Odoo contact or check the current pricing and documentation for the version you run, since capabilities differ between Community, Enterprise, Odoo Online and self-hosted deployments. Record the answers in the design document so later upgrades do not silently break the sign-in setup.
Which identity source to choose and what each option costs you
This table compares LDAP, Microsoft Azure OAuth, Google OAuth, a SAML route and local Odoo accounts against the questions that decide your effort: fit, who maintains it, what breaks when the directory changes and the ongoing operating load. Read each row as a question to answer for your own directory before choosing a sign-in path. The main takeaway is that every external option still needs local break-glass accounts and a decision on how new users get created.
| Decision point | LDAP directory bind | Microsoft Azure or Google OAuth | SAML through a broker or reverse proxy |
|---|---|---|---|
| When it fits | Users live in an on-premise Active Directory or LDAP directory that Odoo can reach over the network | Users already sign in to Microsoft 365 or Google Workspace and you want the same sign-in in Odoo | The organization mandates SAML for all web applications or runs a central identity provider that only speaks SAML |
| Who maintains it | Your directory team owns the bind account, search base and group structure; the Odoo team owns the connection settings | Your cloud identity team owns the app registration, redirect addresses and consent settings in the provider | Your identity team owns the broker or proxy and its certificates; the Odoo team owns the header or claim mapping |
| What breaks when the directory changes | Renamed organizational units, a rotated bind password or a changed search filter stops sign-in for everyone at once | Changed tenant, a revoked client secret or a removed app consent stops sign-in, and the secret expiry date needs tracking | A changed claim name, certificate rollover or broker configuration change can pass the wrong identity or block all logins |
| Operational effort it adds | Moderate: bind account rotation, testing filters after directory changes and keeping a copy of connection settings | Low to moderate: secret rotation calendar, redirect address checks after domain or hosting changes | Highest: an extra component to patch, monitor and include in recovery testing, plus certificate lifecycle management |
| Keep local Odoo accounts for break-glass access | Keep at least one local administrator with a strong password stored offline, because a directory outage would otherwise lock out all admins | Keep local administrators, because a provider outage or an expired client secret would otherwise remove every sign-in path | Keep local administrators and test them after each broker change, since the proxy is a single point of failure for sign-in |
| First-login user creation or pre-provisioning | First-login creation from a template is possible, but confirm which access groups the template grants before enabling it | First-login creation is possible, so pre-create accounts for staff who need specific access groups before their first sign-in | Pre-provision accounts where access must be controlled, because an identity claim alone may not grant the intended rights |
How to configure Odoo SSO step by step
This sequence takes an Odoo instance from an unconfigured sign-in method to a tested setup where pilot users sign in through the chosen identity source, receive the right access groups, and are protected by two-factor authentication.
Confirm edition, plan and hosting model
Before any configuration, confirm which Odoo edition and plan the instance runs on, and whether it is hosted on Odoo Online, Odoo.sh or on-premise. Odoo's pricing page states that only the Custom plan can be hosted on Odoo.sh or on-premise, and that only Custom includes custom modules and external API access, so a plan check comes first. Ask the vendor or check your subscription to confirm the exact capabilities available to your instance. Also confirm the Odoo version, because the screens and fields for sign-in methods change between releases and the documentation for your release is the reference. Done when the team has written down the edition, plan, hosting model and version in the project record, and the Odoo documentation for that version is open for reference.
Choose the identity source
Decide which directory will be the source of truth for user identities. Common options documented by Odoo include LDAP, Microsoft Azure OAuth and Google Sign-In, and the choice depends on where your staff accounts already live, whether you need group membership from the directory, and whether the identity provider supports the sign-in method you need. If your organization requires SAML, confirm with the vendor and your identity team whether the Odoo version and plan support it, since this sequence covers the methods Odoo documents. Done when the identity source, the owner of that directory and the list of groups to map are recorded and approved by the identity team.
Create a test database and identity application
Duplicate the production database into a separate test instance and neutralize it so that outgoing emails and scheduled actions do not reach real users or systems, following Odoo's guidance on database duplication for test copies. In the identity provider, create the application registration or OAuth client, or the LDAP service account with read-only access, that Odoo will use. Store credentials in a secrets manager, not in configuration notes. Done when the test database starts, the identity application exists, and the service account can perform a directory lookup for a known pilot user from the Odoo server.
Configure the Odoo sign-in method
In the test database, enable the chosen sign-in method through the settings that Odoo documents for your version, entering the server address, client identifiers, redirect addresses or LDAP search parameters as the documentation specifies. Use an account with administrator rights only for this configuration, and keep local password sign-in available for a break-glass administrator during the pilot. Confirm the exact fields against the documentation for the release in use. Done when a pilot user can start sign-in from the Odoo login page and is redirected to the identity provider, and the login completes without an error page.
Set first-login user creation from a template
If the directory is the source of truth, configure Odoo to create the user record on first sign-in using a template user, so the new account inherits a predefined set of access rights rather than full administrator rights. Odoo documents first-login user creation for LDAP sign-in. Review the template's access groups and record rules before enabling it, because every new directory account will receive those rights. Done when a new test account in the directory signs in once, a user record appears in Odoo, and the record carries only the rights defined in the template.
Enable two-factor authentication
Turn on two-factor authentication for the pilot users and confirm how it interacts with the chosen sign-in method, since the second factor may be enforced by the identity provider, by Odoo, or by both. Decide who is exempt, if anyone, and how the break-glass administrator will be protected. Document the enrollment steps the users will follow. Done when a pilot user is prompted for the second factor after the primary sign-in, enrollment completes, and a sign-in attempt without the second factor is refused.
Map groups and test with pilot users
Map directory groups to Odoo access groups according to the access design, so that each pilot user receives only the applications and rights for their role. Then test with a defined pilot group: a non-administrator account in the pilot group should sign in successfully and see only its permitted apps, and an account outside the pilot group should be denied sign-in or denied access as designed. Record each test, the expected result and the actual result, and repeat the tests after any change to mappings. Done when the test log shows a successful sign-in from a non-admin pilot account, a denied sign-in for a user outside the pilot group, and no unexpected access rights, and the team has signed off before production rollout.
How user-to-group mapping works and where it breaks
Access in Odoo is determined by the groups assigned to each user, so a single sign-on link is only as trustworthy as the group mapping behind it. Signing in successfully proves who the person is, but it does not decide what they can do. Whatever groups a user holds in Odoo, whether assigned by an administrator, set by an automated import, or carried over from a directory attribute, determine their menus, record access and administrative powers. Before you connect LDAP, Azure or Google sign-in, decide how each directory group will map to an Odoo access role, because that mapping is where most identity problems surface after go-live.
The usual design gives each Odoo access role its own directory group, such as one group for sales users, one for accounting users, and a small separate group for system administrators. Each group should have a named owner who approves membership, and that owner should be recorded somewhere your team can find during an access review. Keep the number of roles small. Many organizations start with a broad mapping and then discover that the same directory group is quietly granting more power than intended. Review who holds administrator rights on a fixed schedule and compare that list with the directory, not only with the Odoo user list, so that departures and role changes are caught in the place where they originate.
Users who sign in but get no useful access are the most common early failure. The sign-in succeeds, the user lands on an empty home screen or sees a permissions error, and the cause is usually a missing or misnamed group mapping rather than a broken connection. Test each role with a real account from each directory group before users are onboarded, and confirm that the group names in the directory match exactly what the integration expects. Plan a support path for these cases so that people do not compensate by requesting administrator rights.
Users who keep access after leaving happens when local Odoo accounts still exist next to the federated ones. A person removed from the directory can still sign in with a password set before the change, or through a local account that was never linked. Confirm whether your chosen method disables local password sign-in for federated users, decide which accounts are allowed to remain local (for example, a break-glass administrator), and include Odoo user deactivation in your offboarding checklist. Verify this with a test leaver account, not only by reading the documentation.
Directory changes often do not take effect immediately. A group added or removed in the directory may only apply at the user's next sign-in, or at the next scheduled sync, depending on the method you choose. Until then, a user may hold access they should have lost or lack access they were just granted. Confirm the sync behavior for your chosen authentication method in your Odoo version, including whether group membership is refreshed on sign-in, by a scheduled job, or only when an administrator intervenes. Document the expected delay and tell approvers and service desk staff about it so that a change is not reported as broken within minutes.
What drives identity integration effort and how to keep it down
This table lists the factors that most change the work of connecting Odoo sign-in to an identity provider, and how each one raises or lowers effort. Read each row as a decision point: the right-hand column shows the step that keeps scope small before configuration starts. The main takeaway is that agreeing the role catalogue, retiring shared accounts and limiting the first pilot usually matter more than the choice of protocol.
| Driver | Why it changes effort | How to keep it down |
|---|---|---|
| Number of identity sources | Each source (for example a directory plus a social login) needs its own attribute mapping, trust settings and failure testing. Odoo documents LDAP, Google Sign-In, Microsoft Azure OAuth, Facebook sign-in and two-factor authentication as separate paths. | Start with one directory as the authoritative source. Treat social sign-in as a separate decision, and confirm whether it is allowed for staff accounts at all. |
| Number of access roles to map | Every Odoo access group that an identity group must map to needs a rule, a test user and a sign-off. Roles multiply quickly when apps and companies are mixed. | Agree the role catalogue in writing before configuration starts. Map only the roles needed for the pilot group, and add others in later change requests. |
| Multi-company setups | Users who belong to several companies need company access rules as well as group membership. Confirm with your edition and plan whether multi-company is available in your deployment, since the pricing page ties it to the Custom plan. | Decide which companies each identity group may reach, then test switching between companies with a pilot user before rolling out. |
| Number of environments | Test, staging and production each need their own identity application registration, redirect addresses and certificates. Mismatched settings between environments are a common source of rework. | Script the configuration so the same steps run in each environment. Use database duplication with neutralization for test copies so that test sign-in does not touch live accounts. |
| Existing local accounts | Local Odoo users created before integration may hold different passwords, duplicate email addresses or shared logins. Each one needs a decision: migrate, link or retire. | Inventory local accounts before cutover. Retire shared accounts first, then link named users to their directory identity, and disable any remaining local accounts after a set notice period. |
| Access review and logging requirements | Compliance expectations for access reviews, joiner-mover-leaver evidence and sign-in logs add reporting, retention and review steps that the identity integration itself does not provide. | Ask your assessor which evidence they expect, such as group membership exports and sign-in records. Confirm where Odoo and the identity provider each store logs and for how long. |
| Two-factor authentication scope | Deciding which users must use two-factor authentication, and how it interacts with the chosen sign-in method, affects helpdesk load and test cases. | Pilot two-factor enrolment with a small group, document recovery steps, and confirm the rule for service or API accounts before wider rollout. |
| Custom sign-in or SAML needs | Where SAML is required, the protocol choice and attribute handling add design and testing work beyond the standard Odoo options. Confirm supported options for your edition and version before committing. | Confirm the protocol requirement during scoping. If a supported standard option meets the need, use it rather than building a custom bridge. |
Securing the identity link: TLS, service accounts and two-factor authentication
Once Odoo sign-in depends on a directory or an identity provider, the connection between them becomes a security boundary. The controls below cover how that link is encrypted, how Odoo authenticates to the directory, where OAuth secrets live, how administrators are protected, and how emergency access is kept without weakening the rest.
Encrypt directory and provider connections
Odoo's LDAP sign-in sends bind credentials and user lookups to the directory server, so the connection should use TLS (LDAPS or StartTLS) and validate the directory's certificate against a trusted authority. Check that the Odoo server trusts the internal CA, that plain LDAP on port 389 is disabled, and that the same rule applies to any test or staging environment that holds production identities.
Least-privilege directory service account
The account Odoo uses to search the directory should be a dedicated, non-interactive service account with read access only to the users and attributes Odoo needs for sign-in and group mapping. It should not be a domain administrator or a personal account. Ask the directory team to confirm the account's permissions, its password rotation process, and whether it can be locked out without stopping all sign-ins.
Keep OAuth client secrets out of code
The client secret issued for Google or Microsoft Azure OAuth is a credential. It belongs in the server configuration or a secrets store managed outside the Odoo custom modules, with file permissions limited to the service user. It must never be committed to a repository, copied into a template database, or exposed in a neutralized test duplicate. Confirm where each environment reads its secret and how a secret is rotated after a suspected leak.
Two-factor authentication for administrators first
Odoo supports two-factor authentication for user accounts. Start enforcement with administrators and anyone with access to access rights, configuration or the database manager, then extend it to the wider user base in stages. Agree the second factor method, the recovery process for lost devices, and who can reset a user's second factor, because a poorly designed reset path can undo the protection.
Local break-glass accounts
Keep a small number of local Odoo accounts that work even when the directory or identity provider is unavailable. Protect them with long, unique passwords stored in a sealed vault, limit them to named administrators, and alert on every sign-in. Test the break-glass procedure during a planned outage so the team knows it works and the accounts are not left unused and forgotten.
Confirm the audit trail for logins
Before go-live, confirm which sign-in events Odoo records for your edition and configuration, including failed attempts, external-provider sign-ins and administrative changes to identity settings. Check whether those records reach your central log store and how long they are retained. For wider on-premise controls such as the master password, reverse proxy and patching, see the separate security hardening topic.
How Odoo SSO differs on Odoo Online, Odoo.sh and on-premise
Odoo Online is the hosted option that Odoo runs for you. According to Odoo's pricing page, it is the only hosting model available on the One App Free and Standard plans, so it is the first question to answer before you plan any identity work. Odoo runs the server, so the sign-in options you can use are the ones Odoo exposes in the hosted service, and you should not assume that every option in the self-hosted documentation is available here.
- Plan first: One App Free and Standard run only on Odoo Online, so SSO planning starts with the plan you have bought.
- Settings exposed: Confirm with Odoo which sign-in methods (LDAP, Google, Microsoft Azure OAuth, two-factor authentication) appear in your instance for your plan and version.
- Network path: Confirm whether Odoo can reach your directory server, or whether the hosted service can only use public identity providers.
- Certificates and updates: Odoo manages the platform, its certificates and its release schedule, so confirm what your team must still maintain.
- Custom code: Custom modules are not available on these plans, so identity logic must sit in the built-in options.
Before you commit, ask Odoo in writing which login methods your plan and instance expose and what each setting requires from your side.
Odoo.sh runs Odoo on a platform that Odoo operates, but the database and code belong to your project. Per Odoo's pricing page, only the Custom plan can be hosted on Odoo.sh, and Custom is also the plan that includes custom modules. That makes Odoo.sh a fit for organizations that need both an external platform and their own Python code, with identity settings handled under the platform's rules.
- Plan requirement: Only the Custom plan is available here, so the plan cost and the hosting cost are linked.
- Custom modules: Identity-related code can live in a custom module, which means it must be reviewed and ported at every version upgrade.
- Directory access: Confirm whether your LDAP server or identity provider can be reached from the Odoo.sh environment, including any allow-listing your network team must do.
- Environment copies: Staging and development branches may share the same authentication settings as production, so check how credentials are kept separate.
- Support windows: Standard support covers the first three years after a major release, and extended support on Odoo.sh is limited to select versions.
Ask Odoo which identity settings are editable on Odoo.sh for your version, and who is responsible for the network path to your directory.
On-premise means you run Odoo on infrastructure you control, which is also a Custom plan requirement. Every identity dependency becomes a responsibility of your team: the directory, the network route from the Odoo server, the certificates and the configuration files. Odoo provides the sign-in options, but the reliability of those options depends on your environment.
- Reachability: The LDAP directory or identity endpoint must be reachable from the Odoo server, so firewall rules and routing are part of the design.
- Certificates: Your team owns the TLS certificates used for directory and OAuth traffic, including renewal and trust chains.
- Shared configuration: An LDAP or OAuth change affects every environment that shares that configuration, including test copies made from production.
- Patching: Security updates arrive only within standard support, so plan identity testing alongside each Odoo upgrade.
- Operating effort: Recovery, logging and access reviews for sign-in fall to your operations team.
Before a change, confirm which copies of the database and configuration point at the same directory, and test identity changes in an isolated environment first.
How to test Odoo sign-in, lockout and offboarding
The test plan for Odoo sign-in should prove three things before go-live: that each approved sign-in method works for a real pilot user in each role, that users outside the access map are refused, and that a person removed from the directory loses access to Odoo. Run these tests against a neutralized copy of the production database or a dedicated test instance, not against live customer or payroll records. Record the expected result for each case before you run it, so the evidence shows what was checked rather than what happened to pass. Start with sign-in. For each method you enable, whether LDAP, Microsoft Azure OAuth or Google sign-in, pick one pilot user for every Odoo role that will exist in production, such as a sales user, an inventory user and an accounting user. Confirm that each one lands in the expected app menus and record rules, and that a user who should not hold a group cannot reach its menus or records. Also test a user who is not in the directory group that your mapping requires. That sign-in must be denied, and the Odoo log should show the attempt. If your configuration allows user creation on first login from a template, confirm which template is applied and that it grants no administrator rights.
Administrator accounts need their own cases. Confirm that two-factor authentication is enforced for every administrator account, including the built-in administrator if it is still active, and test that an administrator without a second factor cannot finish sign-in. Next, disable a pilot account in the directory and attempt sign-in again. The attempt should fail even if an existing Odoo session or cached token remains, so test both a new sign-in and a session that was open before the change. Then check the Odoo user record. Depending on your design, the record should be archived or deactivated, or its group memberships removed, and the user should no longer appear as an active internal user. Confirm which of these behaviors your configuration produces. Do not assume that a disabled directory account changes the Odoo record automatically unless you have tested it.
Failure behavior needs a deliberate test, because it decides what your team does at 2 a.m. Disconnect or block the directory connection in the test environment and observe what happens to sign-in. Confirm whether users see a clear error, whether existing sessions continue, and whether the administrator path still works. Decide in advance whether local Odoo login stays available for break-glass use. If it does, keep a small set of named emergency accounts with strong, separately stored credentials, enforce two-factor authentication on them, and test that they work while the directory is down. If it does not, document how an administrator restores access. For rollback, export the current authentication settings and the group map before any change, and rehearse restoring them. Your rollback plan should say who can trigger it, which services stop during the change and how you confirm sign-in has returned to the previous method.
After go-live, monitor the events that show whether the integration is behaving as designed. Track failed sign-ins grouped by user and source, because a spike can mean a misconfigured directory, a password spray attempt or a broken group sync. Watch new user creation, since unexpected accounts often reveal a first-login template that is too permissive. Review group changes made through the directory or inside Odoo, and treat any change to administrator groups as a notable event. Log administrator sign-ins with their time and source. Confirm with your team how these logs reach your security monitoring and who reviews them, and set alert thresholds with the people who own the directory.
Hand over a documentation set that someone other than the implementer can use. It should include the configuration record, covering the enabled sign-in methods, directory endpoints without secrets, two-factor settings, first-login template and break-glass policy. The group map should list each directory group, the Odoo group it maps to, and the reviewer who approves changes. Name an owner for the directory side, an owner for Odoo access and an owner for break-glass accounts, with backup contacts. Finally, include the test evidence: the test case list with expected and actual results, dates, tester names, screenshots or log extracts, and the retest record after any fix. Ask your implementation partner to confirm in writing which of these items they will deliver and which your team must produce.
Questions buyers ask about Odoo SSO cost, effort and support
What drives the cost of Odoo SSO work?
The main driver is how many identity sources and sign-in methods must be connected, and how complex the group mapping is. A single Microsoft Azure OAuth sign-in with a small set of access groups is far less work than LDAP with nested directory groups, two-factor requirements and several separate Odoo databases. Other drivers include whether the Odoo instance is Community or Enterprise, whether it runs on Odoo.sh or on-premise, the number of test environments, and how much documentation and handover the client needs. Ask any provider for a fixed-scope quote that lists each identity source, each group-to-role mapping, the test cases and the environments covered, so the price can be compared line by line.
Can our internal team set up Odoo SSO without a partner?
Often yes, if the team has someone comfortable with Odoo user administration and the identity provider's admin console. Odoo documents LDAP sign-in, including optional user creation on first login from a template, and it documents Google Sign-In and Microsoft Azure OAuth. The harder parts are usually outside Odoo: agreeing the role catalogue, configuring the identity provider correctly, testing deprovisioning, and keeping the setup working through upgrades. A partner is most useful when the team lacks time for testing or needs an independent review. Confirm the exact configuration steps for your Odoo version in its official documentation before deciding.
How long does Odoo SSO integration usually take?
Duration depends on the same drivers as cost: the number of identity sources, the complexity of access groups, the state of the directory, and how many environments need to be tested before production. Work also slows down when identity provider administrators are hard to reach or when role definitions are not agreed. A small, single-source setup can be scoped and tested quickly, while multi-source or regulated setups need more review and approval cycles. We do not publish a fixed timeline. The written scope should state the phases, the environments, and the dependencies on your teams so the schedule can be checked.
What does the client need to provide for Odoo SSO work?
Plan to provide four things early. First, read access to the directory or a test extract that shows the users and groups to be mapped. Second, a documented role catalogue that states which Odoo access groups each directory group should receive. Third, administrator rights, or a named administrator, on the identity provider so application registrations and claims can be configured and tested. Fourth, test accounts covering each role, including a user who should be denied access. Without these inputs, the work tends to stop at the discovery stage, so confirm the list in writing before the engagement begins.
Does Odoo support SAML for single sign-on directly?
The Odoo documentation we reviewed describes LDAP, Google Sign-In, Microsoft Azure OAuth, Facebook sign-in and two-factor authentication, but it does not describe native SAML sign-in in the sections we checked. Do not assume SAML is available in your edition or version. Confirm with Odoo, through its documentation or its sales and support channels, whether SAML is supported for your edition, hosting model and version. If it is not, the usual options are a supported method such as OAuth or LDAP, or an identity gateway or reverse proxy in front of Odoo. Each option has its own security and support implications, which should be reviewed before choosing.
How does an Odoo upgrade affect the SSO configuration?
An upgrade can change authentication settings, module names, and the way external identities are stored, so the configuration should be treated as part of the upgrade scope. Odoo's upgrade service moves a database to a newer supported version through an upgraded test database, which should be tested before production. On Odoo Online and Odoo.sh, major upgrades are mandatory every two years according to Odoo's documentation. The practical steps are to record the configuration, rerun sign-in and role tests on the upgraded test database, check two-factor and group mappings, and confirm the identity provider application still matches Odoo's redirect and client settings.
What should a fixed-scope quote for Odoo SSO list?
A useful quote lists the work as named items rather than a single total. It should name each identity source and sign-in method, the Odoo edition, version and hosting model, the access group mapping rules, two-factor scope, the test environments and test cases, the client inputs from the list above, and the handover documents. It should also state what is out of scope, such as SAML if it is not confirmed, changes to the identity provider beyond the agreed configuration, and post-go-live support. Ask for the assumptions behind each item, and ask how changes to scope are priced if the discovery stage finds new identity sources.
How DeployOpen works on this
DeployOpen plans, implements, documents and supports Odoo sign-in against your existing identity source inside your own infrastructure. Each engagement starts with a written, fixed scope that names the identity provider, the access groups and the sign-in methods in use.
How we scope
- Confirm which identity source Odoo will authenticate against, such as LDAP, Microsoft Azure or Google OAuth.
- Map directory groups or claims to Odoo access groups and record which roles each group receives.
- Agree in writing whether two-factor authentication, user creation on first login and any SAML requirement are in or out of scope.
How we build
- Configure the chosen sign-in methods in a non-production Odoo database before touching production users.
- Test sign-in, failed sign-in, group mapping and revocation of a disabled account against the agreed matrix.
- Confirm the Odoo edition and hosting in use support the chosen method, checking the vendor documentation for each feature.
How we hand over
- Deliver written configuration records covering identity provider settings, group mappings and fallback admin accounts.
- Document the test cases run, their results and the steps to repeat them after an Odoo version upgrade.
- Walk your identity and Odoo administrators through daily operation, offboarding steps and where secrets are stored.
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer after handover.
- Re-test sign-in paths when Odoo, the identity provider or the directory schema changes.
- Ask for the retainer terms and response commitments in writing, since they are agreed per engagement.

