{"id":25209674,"url":"https://github.com/backdrop-contrib/sso","last_synced_at":"2026-02-09T08:03:57.980Z","repository":{"id":262572479,"uuid":"887657876","full_name":"backdrop-contrib/sso","owner":"backdrop-contrib","description":"Provides seamless Single Sign-On (SSO) functionality between two Backdrop CMS sites.","archived":false,"fork":false,"pushed_at":"2024-12-19T16:59:09.000Z","size":30,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"1.x-2.x","last_synced_at":"2025-02-10T13:18:11.569Z","etag":null,"topics":["authentication","backdrop","backdropcms","cms","sso","sso-authentication","sso-login"],"latest_commit_sha":null,"homepage":"https://github.com/backdrop-contrib/sso","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/backdrop-contrib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-13T03:55:28.000Z","updated_at":"2024-12-19T16:59:14.000Z","dependencies_parsed_at":"2024-11-13T06:21:10.075Z","dependency_job_id":"66acae91-e1d4-45ae-ae0a-ab7a86f3c82f","html_url":"https://github.com/backdrop-contrib/sso","commit_stats":null,"previous_names":["backdrop-contrib/sso"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/backdrop-contrib%2Fsso","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/backdrop-contrib%2Fsso/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/backdrop-contrib%2Fsso/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/backdrop-contrib%2Fsso/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/backdrop-contrib","download_url":"https://codeload.github.com/backdrop-contrib/sso/tar.gz/refs/heads/1.x-2.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247290369,"owners_count":20914652,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","backdrop","backdropcms","cms","sso","sso-authentication","sso-login"],"created_at":"2025-02-10T13:18:14.451Z","updated_at":"2026-02-09T08:03:56.127Z","avatar_url":"https://github.com/backdrop-contrib.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Single Sign-On (SSO) Module\n===================\nThe Single Sign-On (SSO) module enables seamless Single Sign-On functionality for Backdrop CMS installations across multiple subdomains of the same main domain. It leverages Backdrop's native session management to authenticate users across shared environments.\n\nRequirements\n------------\nTo ensure proper functionality, the following requirements must be met:\n\n1. To ensure the userbase and sessions are synchronized across all subdomains, configure each site to share specific database tables related to users and sessions. Below are example configurations that can be added to the `settings.php` file of each subdomain to point these tables to the main domain's database:\n\n\u003cdetails\u003e\n\u003csummary\u003eBackdrop CMS \u003c 1.30.0 - Database settings example\u003c/summary\u003e\n\n```php\n$databases['default']['default'] = array(\n  'database' =\u003e 'subdomain_db',\n  'username' =\u003e 'username',\n  'password' =\u003e 'password',\n  'host' =\u003e 'localhost',\n  'driver' =\u003e 'mysql',\n  'prefix' =\u003e array(\n    'default' =\u003e '', // Local tables for this subdomain.\n    'users' =\u003e 'main_domain_db.', // Shared user table.\n    'sessions' =\u003e 'main_domain_db.', // Shared sessions table.\n    'users_roles' =\u003e 'main_domain_db.', // Shared user roles table.\n    'realname' =\u003e 'main_domain_db.', // Shared real name data.\n    'field_data_field_first_name' =\u003e 'main_domain_db.', // Shared first name field.\n    'field_revision_field_first_name' =\u003e 'main_domain_db.', // Shared first name field revisions.\n    'field_data_field_last_name' =\u003e 'main_domain_db.', // Shared last name field.\n    'field_revision_field_last_name' =\u003e 'main_domain_db.', // Shared last name field revisions.\n  ),\n);\n\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eBackdrop CMS \u003e= 1.30.0 - Database settings example\u003c/summary\u003e\n\n```php\n$database = array(\n  'database' =\u003e 'subdomain_db',\n  'username' =\u003e 'username',\n  'password' =\u003e 'password',\n  'host' =\u003e 'localhost',\n  'prefix' =\u003e array(\n    'default' =\u003e '', // Local tables for this subdomain.\n    'users' =\u003e 'main_domain_db.', // Shared user table.\n    'sessions' =\u003e 'main_domain_db.', // Shared sessions table.\n    'users_roles' =\u003e 'main_domain_db.', // Shared user roles table.\n    'realname' =\u003e 'main_domain_db.', // Shared real name data.\n    'field_data_field_first_name' =\u003e 'main_domain_db.', // Shared first name field.\n    'field_revision_field_first_name' =\u003e 'main_domain_db.', // Shared first name field revisions.\n    'field_data_field_last_name' =\u003e 'main_domain_db.', // Shared last name field.\n    'field_revision_field_last_name' =\u003e 'main_domain_db.', // Shared last name field revisions.\n  ),\n);\n```\n\u003c/details\u003e\n\n2. Cookie Domain Configuration:\n   - In the settings.php file for each subdomain, set the $cookie_domain variable to allow cookies to be shared across subdomains.\n   - Example: `$cookie_domain = '.example.com';`\n   - Replace `example.com` with your actual main domain.\n\nInstallation\n------------\n1. Place the SSO Module in the modules directory of your Backdrop CMS installation.\n2. Enable the module in the Backdrop CMS admin interface under Admin \u003e Modules.\n3. Ensure the `settings.php` file for each subdomain is properly configured as described above.\n\nHow It Works\n------------\n\n1. When a user logs in on one subdomain, Backdrop CMS creates a session entry in the shared `sessions` table and sets a session cookie.\n2. When the user accesses another subdomain:\n   - The session cookie is read and validated against the shared sessions table.\n   - If the session is valid, the user is automatically logged in.\n\nKnown Limitations\n-----------------\n\n- This module does not support cross-domain SSO (e.g., between example.com and example.net). It works only across subdomains of the same main domain (e.g., sub1.example.com and sub2.example.com).\n\nIssues\n------\nReport bugs and feature requests in the Issue Queue:\nhttps://github.com/backdrop-contrib/sso/issues.\n\nCurrent Maintainers\n-------------------\n- [Alan Mels](https://github.com/alanmels)\n\nCredits\n-------\n- Created for Backdrop CMS by [Alan Mels](https://github.com/alanmels).\n- Sponsored by [AltaGrade](https://www.altagrade.com).\n\nLicense\n-------\nThis project is GPL v2 software. See the LICENSE.txt file in this directory for complete text.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbackdrop-contrib%2Fsso","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbackdrop-contrib%2Fsso","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbackdrop-contrib%2Fsso/lists"}