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


热门话题
java流/下载文件,无需在Spring Boot中保留内存   kotlin/java是否有类似TryParse()的东西?   java Spring引导找不到用户类型的属性ID   java Spring 2到Spring 3的迁移:一个控制器用于多个视图   java包含多个程序包名为“安卓”的库。支持图样可提取'   java spring JPA是否支持自定义值框架?   java转义出基于文本字段的搜索栏   java AAPT:错误:未找到样式属性“安卓:attr/WindowsPlashCreenBackground”   java从文本文件中读取纬度和经度   java哪里可以找到如何使用排序的示例。顺序ignorecase(),其中nullhandling nulls last用于自定义Spring JPA如何提供查询   尝试使用Dialogflow上的Webhook动态给出响应时,java获取Webhook响应错误(206)   如何在java中替换匹配的字符串?   java模拟数学的最大价值。随机的   java Spring RestTemplate GET请求未给出正确响应   春爪哇。lang.IllegalArgumentException   java系统。load()永远不会发生   java剪辑循环不工作   java如何从maven构建中删除staxapi   java ThreadPoolExecutor的排队行为是否可以自定义,以更喜欢创建新线程而不是排队?