Django SSO解决方案
django-admin-sso2的Python项目详细描述
(友好的叉子,所有的信用证都应该交给马克·埃格利/弗罗格32。)
Django admin SSO允许用户使用 OAuth2提供程序,而不是用户名/密码组合
安装
django admin sso最常用于Google OAuth2和说明 遵循这个假设至少在理论上可以使用不同的 OAuth2提供程序
确保你有一个工作的Django项目设置
使用pip:
安装django-admin-sso2pip install django-admin-sso2
将admin_sso添加到INSTALLED_APPS中的settings.py文件:
INSTALLED_APPS = ( ... 'admin_sso', ... )
添加django管理员身份验证后端:
AUTHENTICATION_BACKENDS = ( 'admin_sso.auth.DjangoSSOAuthBackend', 'django.contrib.auth.backends.ModelBackend', )
将OAuth2客户端id和密钥插入设置文件:
DJANGO_ADMIN_SSO_OAUTH_CLIENT_ID = 'your client id here' DJANGO_ADMIN_SSO_OAUTH_CLIENT_SECRET = 'your client secret here'
导航到谷歌的 Developer Console,创建 新建项目,并在菜单点“APIs&auth”下创建新的客户端ID, “证书”。重定向URI的格式应为 http://example.com/admin/admin_sso/assignment/end/
- 运行./manage.py migrate创建所需的数据库表
- 登录到管理员并添加分配。
作业
任何远程用户->;本地用户x
- 选择用户名模式“任意”。
- 将域设置为您的身份验证域。
- 从“用户”下拉列表中选择本地用户
远程用户->;本地用户
- 选择用户名模式“匹配”或“不匹配”。
- 将username设置为[不]match by。
- 将域设置为您的身份验证域
- 从“用户”下拉列表中选择本地用户。
变更日志
2.0
- 删除了对OpenID的支持
- 与python 3兼容
1.0
- 添加对oauth2.0的支持,因为google关闭了openid端点https://developers.google.com/accounts/docs/OpenID
- 现在不推荐使用OpenID,OpenID支持将在将来的版本中删除
- 增加更多的测试以获得良好的覆盖率。