uniAuth是一个基于Django的SAML2身份提供者
项目描述
Django uniAuth
uniauth-saml2-idp 是一个基于 Pysaml2 和 Django 构建的 SAML2 IDentity Provider。它最初是从 djangosaml2idp 项目中分叉出来的,现在几乎已经没有什么遗留。
有关使用规范和高级主题,请参阅 readthedocs上的官方文档。
SAML2功能
- HTTP-REDIRECT 和 POST 绑定(签名认证请求必须在 HTTP-POST 绑定中);
- ForceAuthn;
- SLO,SAML单点登出;
- 签名和加密断言;
- AllowCreate,nameid以持久性nameid格式存储。
特定于实现的特性
- 添加新元数据或服务提供者定义时不需要重启;
- 完全支持国际化(i18n);
- 通过Admin后端UI交互式地定义元数据存储;
- 通过Admin后端UI交互式地定义服务提供者;
- 基于 AGID指南 的可定制模板和样式;
- 在保存时对元数据存储和SP进行验证,以防止生产环境中的错误配置;
- 可配置Computed NameID的摘要算法和盐;
- 许多可配置选项,对于每个SP,我们可以决定
- 显式启用/禁用;
- 签名和摘要算法;
- 属性发布(强制设置一组或发布SP请求的属性);
- 属性重写和创建,每个SP的AttributeProcessors完全可配置,属性发布的每个方面都可以从头开始定制;
- 协议屏幕消息,可用性,数据同意书。
- 通过uwsgi和Python日志配置可配置的日志轮转;
- 每个用户可导入的StoredPersistentID,来自另一个IDP的迁移;
- 可选的LDAP网络管理员,通过
django-ldap-academia-ou-manager <https://github.com/peppelinux/django-ldap-academia-ou-manager>
配置应用(ldap_peoples
); - 通过pyMultiLDAP支持多个LDAP源;
- 支持多因素身份验证,与djangosaml2idp最初提供的一样;
- aacli和mdquery管理命令(是的,受Shibboleth IdP的启发);
- 详细日志。
示例
uniAuth允许从Web管理员后端界面直接添加新元数据和注册新服务提供者。有关使用规范和高级主题,请参阅readthedocs上的官方文档。
在创建或更新时,每个元数据存储都将被验证,以避免在生产环境中出现配置错误。
创建一个新的SP。如果
SAML_DISALLOW_UNDEFINED_SP
为True,此配置是强制性的,否则只需要sp元数据,SP配置将自动使用默认配置创建。
测试
pip install -r requirements-dev.txt
pytest tests/ -x --pdb
代码覆盖率
coverage erase
coverage run -m pytest tests/
coverage report -m
测试LDAP服务器在tests/ldapd.py
中可用。您可以手动运行它并使用ldapsearch
进行查询。单元测试将自动运行ldapd.py
。
python3 tests/ldapd.py
ldapsearch -H ldap://#:3899 -b "dc=testunical,dc=it" -x uid=mario
# auth bind
ldapsearch -H ldap://#:3899 -b "dc=testunical,dc=it" uid=mario -D "uid=mario,ou=people,dc=testunical,dc=it" -w cimpa12
贡献
请自由贡献,为每个功能创建单独的分支来创建PR。如果您想在开发之前进行讨论,请打开一个Issue,以降低因某些原因无法合并的风险。
项目详情
关闭
uniauth_saml2_idp-2.0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 94e738da3c3456e6ee584b2a2f2019ae7adb641d9475842e33c77ddc43e5f304 |
|
MD5 | 4738f2df3a9a7099cef20e2c50bb63f8 |
|
BLAKE2b-256 | 795c34078a03e4aa1b7607b59ca0f13cff19b288271f58882457ecdc85e5496c |