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_DSSOCLIENT_ENDPOINT = 'https://DSSOSERVER/sso/' KLEIDES_DSSOCLIENT_SHARED_KEY = 'oh-sso-very-very-secret'
Changes
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
kleides_dssoclient-0.2.tar.gz
(18.6 kB
view details)
File details
Details for the file kleides_dssoclient-0.2.tar.gz.
File metadata
- Download URL: kleides_dssoclient-0.2.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/37.0.0 requests-toolbelt/0.8.0 tqdm/4.19.4 CPython/2.7.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36fee8ac00bb1307f46b4e2e2088ffdc8d21c189ccc8dee1d08a4d61cf3a6b9e
|
|
| MD5 |
3d6b50bd700d127a0a4d178689051ecd
|
|
| BLAKE2b-256 |
78bb4dcb327196e58d129846f989deabd0fcfff3b302afa5879d8168f7d22043
|