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第三方库


热门话题
AmazonS3查找从S3forJava下载的压缩文件的MIME类型   java如何使用Selenium在<span>中查找具有特定文本的元素   python如何使用OpenIEDemo生成自定义三元组。由stanfordnlp提供的java   java遇到“方法不适用”编译错误   java如何使用Mockito在Looper中运行的验证代码。getMainLooper?   类Java目录错误   java在已知其他泛型信息时使用原始类型   java connect()和disconnect()在哪里实现?   java使用PDF Box库拆分PDF,生成的PDF几乎与源PDF文件大小相同   java PowerMockito返回错误的对象   java如何找到TIBCO集合消息的字节编码?   java Basic音乐播放器下一步和上一步按钮   添加模块描述符时,java没有名为“entityManagerFactory”的bean可用   java为什么我的代码不是线程安全的?   eclipse java。引用项目中的类的lang.NoClassDefFoundError