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_active,is_present,is_committee:布尔标志。
要获取详细信息,请参见models.py。
<used for lookup>必须是true或false。所有属性 值为TRUE用于搜索现有用户。如果找到该用户,则该用户将 使用所有更改的值更新并用于登录。如果找不到用户,则 使用给定的所有值创建。尝试选择唯一属性(如用户名)。 您确定要唯一的属性(例如,可能是数字)或使用 属性。
请求
元数据和请求是为saml准备的,例如需要端口号。如果未指定,则所有这些值都取自请求元信息:
- https:可以是on或off。
- 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启用此插件。
对于代码样式,当前flake8和isort正在检查代码。安装它们 运行pip install -r requirements.txt。可以随意添加单元或集成测试。
快乐贡献:)
更改日志
版本1.0.1(2018-10-19)
- 支持OpenSlides 2.3
版本1.0(2018-06-22)
- 初次发布。请阅读每个设置的自述文件 定制的可能性。
- 支持OpenSlides 2.2