跳转到主要内容

SAML2认证用于Zope

项目描述

介绍

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

hl.pas.samlplugin 为Zope的 PluggableAuthService 提供了一个SAML2插件。它提供了IExtractionPlugin,IAuthenticationPlugin,IChallengePlugin,ICredentialsResetPlugin接口。

hl.pas.samlplugin 目前已与OpenAM进行了测试。

安装

  1. 将软件包添加到您的buildout中

  2. 安装 xmlsec

  3. 运行buildout

  4. 重启Zope

  5. 访问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提供的其他用户属性,应存储在用户会话中

请查看 browserskins/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 (241.7 kB 查看散列)

上传时间

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面