zope的saml2身份验证

hl.pas.samlplugin的Python项目详细描述


Introduction

https://secure.travis-ci.org/Haufe-Lexware/hl.pas.samlplugin.pngLatest Version

hl.pas.samlplugin为zope的PluggableAuthService提供saml2插件。它提供了 iextractionplugin、iauthenticationplugin、ichallengeplugin、icredentialsresetplugin 接口。

hl.pas.samlplugin到目前为止已经用openam进行了测试。

Installation

  1. 将包添加到您的构建中
  2. 安装xmlsec
  3. 运行构建
  4. 重新启动zope
  5. 在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提供的应存储在用户会话中的其他用户属性

有关如何处理登录/注销的示例,请查看browserskins/auth子目录 对于cmfsite。

需要注意的是,这个pas插件(和saml2协议)只提供身份验证。很有可能 必须实现自己的插件才能提供ipropertieslugin和iusernumerationplugin接口, 至少如果您必须处理用户生成的内容或希望使用zope cmf。

Credits

saml2子文件夹中的大部分代码来自pysaml2包。

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

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

推荐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失败