zope的saml2身份验证
hl.pas.samlplugin的Python项目详细描述
Introduction
内容
hl.pas.samlplugin为zope的PluggableAuthService提供saml2插件。它提供了 iextractionplugin、iauthenticationplugin、ichallengeplugin、icredentialsresetplugin 接口。
hl.pas.samlplugin到目前为止已经用openam进行了测试。
Installation
- 将包添加到您的构建中
- 安装xmlsec
- 运行构建
- 重新启动zope
- 在zmi中访问站点的可插入认证服务并添加saml2 pas插件
Configuration
您将需要为包含站点的zope站点提供idp的端点配置。 AssertionConsumerService和SingleLogoutService的设置。这将是一个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-post的http重定向 对于AssertionConsumerService)是唯一受支持的。对于身份验证请求,使用http重定向。
有关更多信息,请参阅可用的saml2文档。
在saml2 pas插件的properties选项卡上,您需要指定更多的属性才能工作:
- IDP配置文件的绝对路径。此xml文件应由idp提供
- 服务端点url,即上面示例中的http://zopehost:8080/site
- 给定给idp的服务端点实体id
- 用于身份验证请求的authnContextClass
- 用于被动会话检查的服务url绑定
- xmlsec可执行文件的绝对路径
- idp提供的应该用作用户登录属性的属性(即zope使用的用户id)
- idp提供的应存储在用户会话中的其他用户属性
有关如何处理登录/注销的示例,请查看browser和skins/auth子目录 对于cmfsite。
需要注意的是,这个pas插件(和saml2协议)只提供身份验证。很有可能 必须实现自己的插件才能提供ipropertieslugin和iusernumerationplugin接口, 至少如果您必须处理用户生成的内容或希望使用zope cmf。
Changelog
1.2 (2015-02-24)
- 在子目录“saml2”中添加了部分pysaml2库(https://github.com/rohe/pysaml2),以修复repoze.who和当前zope版本的依赖性问题
- 将许可证从GPL更改为Apache2.0
- “passive”、“active”和“checksession”方法现在接受一个可选参数,以根据每个请求覆盖默认的authnContextClass(来自属性)
1.1 (2014-06-04)
- 从请求表单中弹出samlart以防止在某些情况下无休止的重定向
- 正确处理工件响应编码
- 更新的关键字
1.0 (2014-04-22)
- 修复测试
0.9 (2014-04-17)
- 增加了对工件服务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
推荐PyPI第三方库
- 热门话题
- java的目标是从我的项目中删除不起作用的文件 java对for循环的理解 java我完成了在作业要求的位置查找字符的部分,但是如何从我找到的字符串中删除字符呢? 基于帧时的java动画 java请求无效。缺少XGoogUploadCommand标头 java如何在viewsource模式下使用openStream? grpc grpc_ARG_KEEPALIVE_PERMIT_而不调用java服务器? java如何通过Junit测试Web服务调用 如何在java中获取鼠标中键? 使用junit在spring测试中加载属性文件 Java中用于类的类修饰符 java多色文本图像 sql无法调试Java中的“连接到数据库失败”异常 java如何指定hibernate连接映射? java Android工具栏不显示 java仿射转换不同的图形对象 使用终端的java问题 Java在tomcat上查找127.0.0.1失败