Django SSO解决方案
项目描述
注意! django-admin-sso使用了Google的oauth2client,该库已经废弃很久;现在Google甚至已经将其存档。django-admin-sso不会消失,但我建议新的项目使用django-authlib的Admin OAuth支持。
Django管理SSO
Django管理SSO允许用户使用OAuth2提供者而不是用户名/密码组合登录到Django的管理面板。
安装
django-admin-sso通常与Google OAuth2一起使用,以下说明基于这一假设。从理论上讲,使用不同的OAuth2提供者也是可能的。
确保您已设置一个有效的Django项目。
使用pip安装django-admin-sso
pip install django-admin-sso
在您的 settings.py 文件中将 admin_sso 添加到 INSTALLED_APPS
INSTALLED_APPS = ( ... 'admin_sso', ... )
添加 django-admin 身份验证后端
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'
导航到 Google 的 开发者控制台,创建一个新的项目,并在“APIs & AUTH”,“Credentials”菜单项下创建一个新的客户端 ID。重定向 URI 应该是以下形式:http://example.com/admin/admin_sso/assignment/end/
运行 ./manage.py migrate 以创建所需的数据库表。
登录到管理界面并添加一个分配。
分配
任何远程用户 -> 本地用户 X
选择用户名模式“任何”。
将域设置为您的认证域。
从用户下拉菜单中选择您的本地用户。
远程用户 -> 本地用户
选择用户名模式“匹配” 或 “不匹配”。
设置用户名是否匹配。
将域设置为您的认证域。
从用户下拉菜单中选择您的本地用户。
变更日志
3.0
不再支持 Django<1.11 和 Python<3。
使用 black 重新格式化代码并更新了包。
2.4
正式支持 Django 1.11。
2.3
将最低支持的 Django 版本提高到 LTS 版本,1.8。
避免 Django 1.10 的弃用警告。
2.2
正式支持 Django 1.10(无需更改)
使管理面板适用于拥有许多用户的站点。
2.1
移除了对 OpenID 的支持。
Python 3 兼容
不再支持低于 1.7 的 Django 版本
作为 django-admin-sso 继续开发(2.0.x 版本作为 django-admin-sso2 独立发布)
1.0
由于 Google 关闭了其 OpenID 端点,因此添加了对 OAuth2.0 的支持 https://developers.google.com/accounts/docs/OpenID
使用 OpenID 现已弃用,并且 OpenID 支持将在未来的版本中删除。
添加更多测试以获得良好的覆盖率。
项目详情
django-admin-sso-5.2.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 878f1776825c8454c440781153b9a7a755192f97f6a09d66961cd2d1066fd04c |
|
MD5 | 88abc24f805af7e8d0024e2696c7338b |
|
BLAKE2b-256 | 9ee318b343f1521a2b82ea6dff612f1c9435fe88f6a677d29b3b9147f964e9b8 |
django_admin_sso-5.2.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5cab4c9a3746a60c36f384ec7aa9cd4bc6eb73f44de6bcdba7293346d31fcfc8 |
|
MD5 | cb23f13351eded39f0a0b6742968bfb7 |
|
BLAKE2b-256 | 729f43610a18d199447a02a7a90a73546c844200b256715633f1305214d7cf22 |