openslides saml插件

openslides-saml的Python项目详细描述


概述

这个openslides插件提供了一个通过saml单点登录的登录 服务

要求

注意:python3 saml需要您的python包xmlsec,这取决于libxml2。这些软件包需要安装在类似debian的系统上:

$ apt-get install libxml2-dev libxmlsec1-dev libxmlsec1-openssl pkg-config

有关其他操作系统或发行版的详细信息,请访问http://pythonhosted.org/xmlsec/install.html

安装

这只是在gnu/linux上安装插件的示例说明。它 也可以作为任何其他python包安装在其他平台上, 在窗户上。

切换到新目录:

$ cd
$ mkdir OpenSlides
$ cd OpenSlides

设置并激活虚拟环境,安装openslides和 插件:

$ python -m venv .venv
$ source .venv/bin/activate
$ pip install openslides-saml

开始打开幻灯片:

$ openslides

配置

在第一次开始之前,这一行需要添加到settings.py

SETTINGS_FILEPATH = __file__

如果这一行不存在,插件将提醒您:)。

在启动openslides时,如果 它不存在。要强制创建此文件,请运行:

$ python manage.py create-saml-settings [--dir /<path to custom settings dir>/]

路径必须与openslides的起始路径匹配。

有关设置文件的第一部分,请参阅python3-saml settings documentation。这里描述的所有设置 合并到saml_settings.json中。还要注意^{tt5}中的README文件$ saml_settings.json旁边的文件夹。

一般设置

在这里,您可以为saml登录按钮提供自定义文本。更改密码url 当在OpenSlides用户中单击“更改密码”时,将用户重定向到给定的URL 菜单。

属性

如果用户成功登录,身份提供程序将向插件发送属性。到 将这些属性映射到openslides用户的属性,节attributeMapping 存在。结构如下:

"attributeMapping: {
    "attributeFromIDP": ["attributeOpenSlidesUser", <used for lookup>],
    "anotherAttributeFromIDP": ["anotherAttributeOpenSlidesUser", <used for lookup>]
}

所有可用的OpenSlides用户属性都是:

  • username:必须是唯一的。标识用户。
  • first_name:用户名。
  • last_name:用户的姓氏。
  • title:用户的标题,例如“dr.”。
  • email:用户的电子邮件地址。
  • structure_level:结构级别。
  • number:参与者号码。此字段不是唯一的。
  • about_me:一个自由文本字段。
  • is_activeis_presentis_committee:布尔标志。

要获取详细信息,请参见models.py

<used for lookup>必须是truefalse。所有属性 值为TRUE用于搜索现有用户。如果找到该用户,则该用户将 使用所有更改的值更新并用于登录。如果找不到用户,则 使用给定的所有值创建。尝试选择唯一属性(如用户名)。 您确定要唯一的属性(例如,可能是数字)或使用 属性。

请求

元数据和请求是为saml准备的,例如需要端口号。如果未指定,则所有这些值都取自请求元信息:

  • https:可以是onoff
  • http_host:主机名。
  • script_name:元值中的PATH_INFO的有效值。
  • server_port:服务器监听的端口。

这些值可能是错误的,因为openslides在web服务器后面的端口8000上运行 将通信量从端口80重定向到端口8000。在requestSettingsyou部分 可以设置这些值以覆盖元信息中获取的值。

开发

若要对此插件作出贡献,请创建自己的fork并在分支中工作 不同于master。克隆你的fork,创建一个虚拟环境并建立一个链接 从openslides进入开发签出(请参阅this guide):

$ ln -s /<path to this plugin>/openslides_saml /<path to os>/

你只需要添加'openslides_saml'给你rsettings.py启用此插件。

对于代码样式,当前flake8isort正在检查代码。安装它们 运行pip install -r requirements.txt。可以随意添加单元或集成测试。

快乐贡献:)

许可证和作者

这个插件是免费的/libre开源软件,在 麻省理工学院许可证,见许可证文件。作者在作者档案中提到。

更改日志

版本1.0.1(2018-10-19)

  • 支持OpenSlides 2.3

版本1.0(2018-06-22)

  • 初次发布。请阅读每个设置的自述文件 定制的可能性。
  • 支持OpenSlides 2.2

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

推荐PyPI第三方库


热门话题
java如何使用Spring和JSF向客户端授予临时权限   java除了Array/ArrayList之外,还有其他保存矩阵元素的方法吗   java BeanValidation不适用于单选按钮   通过java程序连接到配置单元数据库时出错   java如何使用maven解决二级依赖关系   JfreeChart/Java中带有图例的数据表   合并数组时发生java运行时错误   安全性如何在JavaEE中保护WebSocket端点?   java有没有一种方法可以使用insert方法为树插入值   java编程“静态”的另一种方式:代码可以吗?   java阅读文本文件时如何跳过3行   %04X在C中的含义以及如何在java中编写   java我如何验证一个方法不是仅在一个测试范围内对模拟调用的?   java如何在mac中使用启动appium desktop 1.6.1。球棒   仅匹配最多10位小数的java正则表达式