跳转到主要内容

A-Select认证的PAS插件

项目描述

pas.plugins.aselect的变更日志

1.5 (2012-10-14)

1.4 (2011-08-22)

  • 当配置默认值更改时(如客户端包中的monkey patch),使测试不太可能失败。[maurits]

1.3 (2011-01-24)

  • 迁移到Plone collective。第一次公开发布。[maurits]

  • 修复了在最近添加了UPDATE_EXISTING_USERS配置选项(默认:False)之后的测试。[maurits]

1.2 (2010-08-30)

  • 添加了一个翻译的本地化。[maurits]

  • 在@@aselect-login页面,如果没有创建用户因为可能属于多个组,显示用户选择加入的组选项。[maurits]

  • 添加了配置选项GROUP_ATTRIBUTE,默认值为‘nlEduPersonHomeOrganizationId’。[maurits]

  • 添加了两个配置选项:MUST_HAVE_GROUP和MUST_HAVE_EXACTLY_ONE_GROUP,默认都为True。使用这些默认设置,我们拒绝在无法从凭证中提取 exactly one group时创建和验证用户。[maurits]

  • 添加配置选项 NOT_ACCEPTED_USERS,并将凭证提供的名称与该黑名单进行比较。我们不对黑名单用户进行认证。[maurits]

  • 将 ALWAYS_UPDATE 配置选项重命名为更清晰的 UPDATE_AUTHENTICATED_USER。[maurits]

  • 将 EXTRACT_ALWAYS 配置选项重命名为更清晰的 EXTRACT_ON_ALL_PATHS。[maurits]

  • 将 config.UPDATE_ALWAYS 设置为 True,因此我们总是更新用户属性和组设置,因为我们默认只是对 aselect-login 页面和 testcookies 页面做出反应。[maurits]

  • 如果我们不知道姓氏,则在已知的情况下将电子邮件地址的前部分添加到全名中。[maurits]

1.1 (2010-08-25)

  • 允许调用 @@aselect-login?noredirect=1 以保持在 @@aselect-login 页面上,而不是被重定向到 Plone 网站根目录。这应该会使检查 cookies 更容易。[maurits]

1.0 (2010-08-19)

  • 不要始终提取和认证凭证,而仅在特定路径上,如 testcookies 和 aselect-login。[maurits]

  • 添加了一个简单的重定向到 Plone 网站根目录的 aselect-login 页面。在 (Apache) A-Select 模块中将此定义为受保护的应用程序,你应该就可以正常使用了。[maurits]

  • 如果 nlEduPersonHomeOrganizationId(可能是 BRIN 码)与组 id 匹配,我们在认证过程中将用户添加到该组。[maurits]

  • 仅处理 aselectattributes cookie,而不处理任何其他 cookie。[maurits]

  • 第一个版本,基于一些旧客户代码。[maurits]

A-Select集成PAS插件

A-Select(仅限荷兰语)与“licentiekantoor”(“许可办公室”)结合使用,是一个完整的认证/授权解决方案。它可以与 openid 相比,增加了授权。[maurits]

基本原理:现有的 apache 配置处理与 aselect 的通信,并确保我们获得的 aselect cookies 是真实的。因此,PAS 插件只需要处理 cookie 内容。[maurits]

PAS功能

此插件执行提取和认证。

  • aselectattributes cookie 中提取凭证:用户 id 和成员数据,如全名、电子邮件地址、组织 id(BRIN 码)。

  • 认证凭证:根据提取的凭证创建或更新成员对象,并认证此用户。

  • 如果组织 id 与现有组的 id 匹配,我们将此用户添加到该组。请注意,组永远不会再次删除。

关于性能和更新的说明

我们可以在每次请求中检查用户属性或组的更改。但每次请求不仅意味着每个页面的请求一次,而且也意味着每个 css、javascript 或图像文件请求一次。这可能会对性能产生负面影响(尽管可能可行)。

因此,我们的解决方案是在某些路径上仅提取 aselect 信息;默认情况下,在 @@aselect-login 路径和 `@@testcookies` 路径上执行此操作。或者,您可以选择永不更新具有来自 plone.session 的认证 cookie (__ac) 的用户的 aselect 信息。注销应该足以重置 plone.session cookie,这将触发自动登录的更新以及获取属性更新,因为 A-Select cookie 应该仍然可用。

这是默认行为。在 config.py 中,您可以更改多个设置(在您自己的包中的补丁中),如果您不喜欢默认设置并且了解对性能和最新性的影响。请注意,config.py 有合理的注释,因此如果您是程序员,您可能想查看该文件。

或者,我们可能想要做一些聪明的操作,比如将 cookiestring 记忆在某个地方,并且仅在字符串有更改时尝试更新。

用法

已在Plone 3.3.5中进行测试。在buildout.cfg的实例部分中添加pas.plugins.aselect到eggs参数。重新运行buildout,启动实例,并通过“添加/删除产品”在站点设置中安装插件。安装代码所做的唯一事情是将插件添加到acl_users,激活所需的插件接口,并确保它是这些接口中列出的第一个插件(实际上顺序可能并不重要,请参见上文)。因此,如果您愿意,可以手动完成此操作。

请注意,在pas/plugins/aselect目录中的README.txt中有一个广泛的doctest。它可能作为测试而不是文档工作得更好,因此它不包括在PyPI页面上。

致谢

  • Guido Wesdorp

  • Joris Slob

  • Maurits van Rees

  • Reinout van Rees

图标是从http://www.famfamfam.com/lab/icons/获取的

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

pas.plugins.aselect-1.5.zip (55.5 kB 查看散列)

上传时间 源代码

由以下提供支持