SAML2认证用于Zope
项目描述
介绍
hl.pas.samlplugin 为Zope的 PluggableAuthService 提供了一个SAML2插件。它提供了IExtractionPlugin,IAuthenticationPlugin,IChallengePlugin,ICredentialsResetPlugin接口。
hl.pas.samlplugin 目前已与OpenAM进行了测试。
安装
将软件包添加到您的buildout中
安装 xmlsec
运行buildout
重启Zope
访问ZMI中的网站可插式认证服务并添加SAML2 PAS插件
配置
您需要为您提供IDP一个包含您的网站的AssertionConsumerService和SingleLogoutService设置的Zope站点端点配置。这将是一个类似于以下的XML文件:
<EntityDescriptor entityID="http://zopehost:8080/spEntityID" xmlns="urn:oasis:names:tc:SAML:2.0:metadata"> <SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="http://zopehost:8080/site/logout" ResponseLocation="https://zopehost:8080/site/logout"/> <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat> <AssertionConsumerService isDefault="true" index="0" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://zopehost:8080/site"/> </SPSSODescriptor> <RoleDescriptor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:query="urn:oasis:names:tc:SAML:metadata:ext:query" xsi:type="query:AttributeQueryDescriptorType" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> </RoleDescriptor> </EntityDescriptor>
目前上述示例中指定的绑定(即SingleLogoutService的HTTP-Redirect和AssertionConsumerService的HTTP-POST)是唯一支持的绑定。对于认证请求,使用HTTP-Redirect。
请参阅可用的SAML2文档以获取更多信息。
在SAML2 PAS插件属性标签页上,您需要指定一些更多属性以使功能正常工作
IDP配置文件的绝对路径。此XML文件应由您的IDP提供
服务端点URL,即例如上例中的 http://zopehost:8080/site
服务端点实体ID,由IDP提供
用于身份验证请求的AuthnContextClass
用于被动会话检查的服务URL绑定
xmlsec可执行文件的绝对路径
IDP提供的属性,应作为用户的登录属性使用(即Zope使用的用户ID)
IDP提供的其他用户属性,应存储在用户会话中
请查看 browser 和 skins/auth 子目录中的示例,了解如何处理CMFSite的登录/注销。
值得注意的是,此PAS插件(以及SAML2协议)仅提供身份验证。您很可能需要实现自己的插件来提供IPropertiesPlugin和IUserEnumerationPlugin接口,至少如果您需要处理用户生成的内容或想使用Zope CMF。
致谢
“saml2”子目录中的大部分代码来自pysaml2包。
变更日志
1.3 (2015-03-02)
关键词
1.2 (2015-02-24)
在子目录“saml2”中添加了pysaml2库的部分(https://github.com/rohe/pysaml2),以解决与repoze.who和当前Zope版本的依赖性问题
将许可证从GPL更改为Apache 2.0
“被动”、“主动”和“checksession”方法现在接受一个可选参数,以在请求级别覆盖默认的AuthnContextClass(从属性中)
1.1 (2014-06-04)
从请求表单中删除SAMLart以防止在某些情况下无限重定向
正确处理artifact响应编码
更新关键词
1.0 (2014-04-22)
修复测试
0.9 (2014-04-17)
添加对artifact服务URL绑定的支持
0.8 (2013-11-25)
添加对AuthnContextClass的支持
0.7.1 (2013-09-06)
要求pysaml2 == 1.0.2(1.0.3无法使用)
0.7 (2013-08-19)
Python 2.6兼容性
0.6 (2013-08-16)
使用pysaml2 >= 1.0
0.5 (2013-07-24)
修复配置缓存问题(使用多个插件时)
0.4 (2013-07-04)
改进配置缓存
为单元测试添加示例数据
0.3 (2013-07-02)
添加图标
0.2 (2013-07-02)
修复MANIFEST.in
0.1 (2013-07-02)
初始发布
贡献者
下载
项目详情
hl.pas.samlplugin-1.3.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7be7257cbb769a09ec781276a91db03ee0b94833da1d204f4fcbf1e8ba93f656 |
|
MD5 | 878ce97b339dbb7c9c2980542d7ce3be |
|
BLAKE2b-256 | 0d164aa9d2185b2a5dc5b513ee8a977ece9c101002cbaf6289e1cef23cea2303 |