Django与SSO的Atlassian群组集成

django-crowd-sso的Python项目详细描述


django群组ssoBuild StatusCoverage Status

使用sso的django的简单atlassian群组身份验证后端 支持

配置:

将群组配置放入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日

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java7和Java8中从现有列表创建不同的列表?   java如何在HP ALM中上载测试结果   java请检查我想使用的代码,当用户在第一次输入中输入0时,条件必须停止   带显示列表的java OpenGL照明   尝试获取活动的DefaultSharedReferences时发生java NullPointerException   java如何区分日期时间类型应为yyyymmdd hh:mm:ss的两个日期   Java中对象上的循环   java jvm挂起并杀死3&jmap失败   Tomcat下的java URLClassLoader   java如何对基于KinesRecord的DoFn进行单元测试?   java Estado HTTP 404–找不到Eclipse/Tomcat   java Spring:缺少必需的请求正文。无法将JSON传递给RestController   java Drools工作台目标   java@Async在REST类中不起作用   rest如何在用户使用java输入时更有效地从Yammer获取消息?   java监视递归过程中创建的内部堆栈上的值   java如何集群和负载平衡Spring+OSGi应用程序   java NotSerializableException对象