Discourse Single-Sign-on (DSSO) provider client to connect your Django project to a Discourse Single-Sign-On provider server.
See: https://meta.discourse.org/t/official-single-sign-on-for-discourse-sso/
Example usage:
Add kleides_dssoclient to INSTALLED_APPS.
Create a custom DssoLoginBackend, for example:
from kleides_dssoclient.backends import DssoLoginBackend class MyProjectDssoLoginBackend(DssoLoginBackend): """ DssoLoginBackend that rejects anyone without is_superuser, and that sets all mapped variables on the newly created User object. """ def authenticate(self, dsso_mapping): """ Check that user is a superuser and pass along to DssoLoginBackend. """ if dsso_mapping.get('is_superuser') not in ('True', 'true', '1'): return None return super(MyProjectDssoLoginBackend, self).authenticate( dsso_mapping) def configure_user(self, user, dsso_mapping): """ We expect username, email, is_superuser in the dsso_mapping. """ user = ( super(MyProjectDssoLoginBackend, self) .configure_user(user, dsso_mapping)) user.email = dsso_mapping.get('email', '') is_superuser = ( dsso_mapping.get('is_superuser') in ('True', 'true', '1')) user.is_staff = is_superuser user.is_superuser = is_superuser user.save() return userAdd this to the Django settings:
AUTHENTICATION_BACKENDS = ( # the only backend needed 'myproject.backends.MyProjectDssoLoginBackend', ) MIDDLEWARE_CLASSES += ( 'kleides_dssoclient.middleware.DssoLoginMiddleware', ) KLEIDES_DSSO_ENDPOINT = 'https://DSSOSERVER/sso/' KLEIDES_DSSO_SHARED_KEY = 'oh-sso-very-very-secret'
Changes
v0.6 - 2019-03-06
Add request arg to DssoLoginBackend for Django 2.1.
v0.5 - 2019-03-06
Add logging to help investigate problems.
v0.3 - 2018-12-18
Add support for Django 1.10 style middleware.
Check Django version for is_authenticated usage.
v0.2 - 2018-11-19
Replace sso_mapping with dsso_mapping in authenticate argument list.
v0.1 - 2018-11-16
Initial release.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file kleides_dssoclient-0.6.tar.gz.
File metadata
- Download URL: kleides_dssoclient-0.6.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8023689d1e09403abc4bc1fde834b70b510df305d9a9f7e2272e5da0afb70949
|
|
| MD5 |
93c47f167a00a07db947aa12d6f90c0e
|
|
| BLAKE2b-256 |
95e4b0ffc01b3d8faba7ca54e48d9b238c1ee9515f94d7a4fc350709189de36f
|