这是JA-SIG的CAS协议服务器端的Python实现,提供跨域单点登录解决方案。
项目描述
- 联系信息:
- eastxing@gmail.com
- 日期:
- 2010/09/25
摘要
这是JA-SIG的CAS协议服务器端的Python实现,提供跨域单点登录解决方案。
1 简介
anz.cas实现了一个新的PAS插件“Anz中央认证服务”。它允许您将您的Plone站点转换为CAS服务器。
2 概述
anz.cas为您提供
一个独立的中央登录页面,用户在此输入其凭据。
一种机制,用于验证用户凭据与各种后端(利用PAS的认证插件)。
后端验证器,其中CAS启用客户端应用程序连接以检查当前用户是否经过身份验证(如果用户已经通过CAS服务器进行过身份验证,则允许他们继续操作,否则将重定向到CAS服务器的登录页面进行身份验证)。
几乎与开放的、多平台的CAS协议完全兼容。
为什么你需要/想要这个
CAS允许你在域之间共享身份验证。
用户只需登录一次——他们第一次尝试访问你的任何一项CAS受保护服务时,以后再也不会了,除非他们注销或其单点登录会话过期。
客户端应用程序永远不会看到用户的实际凭据。
3 致谢
感谢那些开发了以下产品的人,没有你们的努力,anz.cas将不会发生。
4 与JA-SIG的CAS的比较
4.1 优点
anz.cas设计得非常简单,由Zope/Plone用户设置和配置(这与它流行的官方Java兄弟JA-SIG CAS Server正好相反)。
使用JA-SIG CAS服务器,您应该做更多的工作来集成您的Zope/Plone网站。使用anz.cas,您可以减少您的软件堆栈。
您现在可以充分利用现有的PAS身份验证插件来为您执行身份验证工作。
4.2 缺点
作为官方实现,JA-SIG CAS服务器稳定、坚固且广泛使用。anz.cas则相反,希望你们能给我一些反馈,让它变得更好 :)
5 要求
Plone 3或Plone 4
ZODB3>=3.8.3(当Plone3时,仅在3.8.3下进行测试)
zope.proxy>=3.4.1(当Plone3时,仅在3.4.1下进行测试)
zope.bforest
uuid
6 安装
要将anz.cas安装到全局Python环境(或工作环境)中,使用传统的Zope 2实例,您可以这样做
当您阅读此内容时,您可能已经运行了easy_install anz.cas。有关安装setuptools(和EasyInstall)的信息,请参阅:http://peak.telecommunity.com/DevCenter/EasyInstall
在/path/to/instance/etc/package-includes目录中创建一个名为anz.cas-configure.zcml的文件。该文件应仅包含以下内容
<include package="anz.cas" />
或者,如果您使用zc.buildout和plone.recipe.zope2instance配方来管理项目,您可以这样做
将anz.cas添加到要安装的eggs列表中,例如
[buildout] ... eggs = ... anz.cas
告诉plone.recipe.zope2instance配方安装ZCML缩写
[instance] recipe = plone.recipe.zope2instance ... zcml = anz.cas
重新运行buildout,例如
$ ./bin/buildout
如果您打算从另一个包的configure.zcml文件中显式包含该包,则可以跳过ZCML缩写。
然后进入您的Plone网站,通过quick_installer或portal_setup安装“anz.cas”产品。
7 如何使用anz.cas
anz.cas设计得易于设置和定制。
7.1 创建Plone站点作为“CAS服务器”
出于安全考虑,我强烈建议您创建一个专门的Plone网站,用作“CAS服务器”。在此网站上,您应安装“anz.cas”并对其进行配置。假设网站名称为“cas”。
7.2 在Apache后设置您的Plone站点并启用SSL
作为CAS协议,出于安全考虑,与CAS服务器之间的所有通信都通过SSL进行。如何做不在本文档的范围内,此文档将引导您。
注意:您现在可以忽略这一点,通过以下步骤快速体验anz.cas。
7.3 自定义中央登录页面
anz.cas使用Plone库存的login_form作为中央登录页面,您可以根据需要对其进行皮肤化。
7.4 配置您的认证机制
anz.cas利用PAS身份验证插件进行身份验证工作,因此您可以配置PAS以符合您的需求。
7.5 创建“Anz中央认证服务”插件
转到ZMI \cas\acl_users,添加一个名为“Anz Central Auth Service”的实例,选择您喜欢的任何ID,例如我们输入“anz_cas”。
7.6 配置“Anz中央认证服务”插件
前往 \cas\acl_users\anz_cas,在“活动”选项卡中启用唯一接口 - IChallengePlugin。
点击“挑战”以配置“挑战插件”,将“anz_cas”移到顶部。
前往“属性”选项卡以配置CAS相关属性。
属性 |
必需 |
默认值 |
注意 |
requireSecure |
False |
True |
表示是否需要安全连接的布尔变量。 注意:如果您想在非ssl环境中体验anz.cas,应将其设置为False。 |
loginPagePath |
True |
login_form |
登录时要发送人员的位置,默认为Plone的“login_form”。 |
7.7 服务管理
默认情况下,没有任何限制,任何URL上的任何服务都可以通过CAS进行身份验证。这可能由于多种原因而不理想,因此anz.cas提供了一个服务管理工具,以控制哪些服务可以使用CAS服务器,以及这些服务可以做什么。
在“服务”选项卡中列出所有当前注册的服务,您可以选择其中几个或全部进行删除。
点击“添加服务”链接以注册新服务。
字段名称 |
必需 |
默认值 |
注意 |
ID |
True |
注册服务的标识符,它必须等于CAS客户端中配置的serviceUrl。CAS将在登录后重定向到这里。 |
|
名称 |
False |
注册服务的名称。 |
|
描述 |
False |
注册服务的描述。 |
|
启用 |
False |
True |
此服务当前是否允许使用CAS? |
SSO启用 |
False |
True |
此服务是否参与SSO会话? |
匿名访问 |
False |
False |
服务是否允许匿名或特权访问用户信息? |
允许代理 |
False |
True |
此应用程序是否允许参与CAS的代理功能? |
点击已注册服务的ID以修改它。
注意:如果没有注册服务,则没有任何限制,任何URL上的任何服务都可以通过CAS进行身份验证。
7.8 配置CAS客户端
配置您的CAS客户端的casServerUrlPrefix以指向我们新添加的插件实例,例如 https://{您的cas服务器域名}:{端口}/cas/acl_users/anz_cas。
8 安全策略
anz.cas使用票据来实现支持的认证协议,因此票据行为决定了大多数安全策略方面。在当前实现中,anz.cas提供了以下内容
自创建时间起超过2小时后过期的票据授予票据(TGT)。
一次性使用的服务票据(ST),必须在5分钟内验证。
以后将添加更多安全策略。
9 待办事项
添加自动化测试(我真的不知道如何自动化测试这种类型的包 :))
与CAS协议的更多兼容性。
10 变更日志
10.1 1.0.1
更新以支持Plone4。
注意:在Plone3下使用时,请像这样固定产品版本:ZODB3==3.8.3 zope.proxy==3.4.1
登录成功后的重定向错误修复。
10.2 1.0
首次发布
项目详情
anz.cas-1.0.1.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 47d4228070eca259d764c8001a9edf0bd252b9506c8d83c32a1fac0d40dfc9f0 |
|
MD5 | 1ef6aad0a5c66de85cb78380d90b2c8e |
|
BLAKE2b-256 | 42ea25bdc85d1727babacf9e8221d37279ab14e64cd419ebcc69616fb378a9cd |