Django与SSO的Atlassian群组集成
django-crowd-sso的Python项目详细描述
配置:
将群组配置放入settings.py:
CROWD = { 'url': 'http://your.crowd.url:port/crowd/rest', # your CROWD rest API url 'app_name': 'your-registered-crowd-application-name', # appname, registered with CROWD 'password': 'application-password', # correct password for provided appname 'superuser': False, # if True makes CROWD-imported users superusers 'staffuser': False, # if True makes CROWD-imported users staffuser 'validation':'10.11.40.34', # The ipaddress the Crowd server is responding to 'sso': False, # TRurn on SSO 'blocked_creation_domains': ['@example.org'], # Domains not allowed to be created in the local db 'crowd_group': 'CrowdUser', # Group that all imported users are placed in 'DTS_not_use_public_schema': False # If DTS is installed don't save users and groups in Public schema }
在AUTHENTICATION_BACKENDS设置中添加crowd.CrowdBackend。 名单。把它放在第一位,这样密码就只保存在群中:
AUTHENTICATION_BACKENDS = ( 'crowd.backends.CrowdBackend' 'django.contrib.auth.backends.ModelBackend', )
将crowd.middleware.CrowdMiddleware添加到中间件
MIDDLEWARE_CLASSES = ( ... 'crowd.middleware.CrowdMiddleware', ... )
身份验证后端列表以确保始终从群组开始 在转到本地帐户之前进行身份验证。
简单测试:py.test
毒性试验:tox
当前测试不包括SSO
发行说明
0.57版
添加了对django租户模式(django租户模式)的支持 如果安装了DTS,则在公共架构中创建群组,除非 设置notpublicschema==true
0.56版
将用户从群组“拉”到群组中定义的群组, 默认的“众用户”新设置“不允许创建域”: [‘@wfp.org']
0.52版的新版本
在导入第一个硬编码版本中添加了不允许的电子邮件 @example.org,将是将来的设置
任何带有@wfp.org但不在群中的电子邮件都将在不允许的列表中
使用示例
- 具有电子邮件a@b.c的用户已经是本地数据库中的用户“a”作为django 创建的用户
- 具有电子邮件b@c.c的用户已经是本地数据库中的用户“b”,作为 从群组导入用户
- 带有电子邮件的用户{A6}在本地数据库中不是已经存在的用户,但存在 在群组中,因此它将作为用户“c”导入
- 具有电子邮件d@e.f的用户不在本地数据库或群中
- 具有电子邮件e@example.org的用户的域位于不允许的 列表
from crowd.backends import import_users_from_email_list emails = ["a@b.c", "b@c.c", "c@a.b", "d@e.f","e@example.org"] added_or_found, not_found, not_alowed = import_users_from_email_list(emails) print(added_or_found) print(not_found) print(not_allowed)
结果打印输出:
['a','b','c'] ['d@e.f'] ['e@example.org']
学分:
最初由Konstantin J.Volkov为Django v1.3编写 konstantin-j-volkov@yandex.ru2012年7月12日
重构、组装并用Grigoriy Beziuk的Django v1.4进行测试 gbezyuk@gmail.com2012年8月27日
对django 1.9进行了重构和更新,并通过 Tobias Carlander,2015年3月25日