企业单点登录解决方案(CAS)之三安全指南

安全指南

CAS是安全软件,提供了安全的基于网络的基于web的应用程序的单点登录。 单点登录 提供了一个双赢的安全性和便利性:它减少了密码暴露于一个单一的、可信的证书 代理而透明地提供多个服务没有重复登录。 使用CAS一般 改善安全环境,但有几个CAS配置、政策,这应该和部署问题 被认为是实现合适的安全。

系统安全注意事项

安全传输(https)

所有通信与CAS服务器必须发生在一条安全通道(例如TLSv1)。 有两个主要 这理由要求:

  1. 身份验证过程需要传输的安全凭据。
  2. CAS票据授予票是一个不记名的令牌。

由于信息披露的数据将允许模拟攻击,安全是至关重要的 CAS客户端和CAS服务器之间的通信通道。

实际上,这意味着所有ca必须使用HTTPS url,但它 也 意味着所有来自CAS服务器应用程序的连接必须使用HTTPS:

  • 当生成服务票发送回“服务”上的应用程序的url
  • 当一个代理被称为回调url。

连接相关的系统

CAS通常需要连接到其他系统,如LDAP目录、数据库和缓存服务。 我们通常推荐使用安全传输(SSL / TLS,IPSec)这些系统在可能的情况下,但有可能 做好安全传输uncessary的补偿控制。 私人网络和严格的企业网络 acc控制是常见的例外,但建议安全传输。 LDAP客户端证书验证可以另一个很好的解决方案带来足够的安全。

如前所述,连接到其他系统必须是安全的。 但如果CAS服务器部署在多个节点,这同样适用于CAS服务器本身。 如果一张注册表的cache-based运行一个CAS服务器上没有任何安全问题,同步可以成为安全问题当使用多个节点如果网络没有保护。

任何磁盘存储也是脆弱的,如果不妥善保护。 EhCache溢出到磁盘可能关闭增加保护而高级加密数据应该用于数据库磁盘存储机制。

Deployment-Driven安全特性

CAS支持许多功能,可用于实现各种安全策略。 通过CAS提供以下功能配置和CAS客户端集成。 请注意,许多功能 是可用的,而其他人则需要显式设置。

强制认证

CAS许多客户和支持的协议支持强制认证,用户必须的概念 reauthenticate访问一个特定的服务。 CAS协议支持强制认证通过 更新 参数。 强迫的身份验证提供了额外的保障 SSO的主要会议以来,用户必须访问之前检查他或她的凭证。 强制认证适用于服务,更高的安全要求或规定。 典型的强迫 身份验证配置在每个服务的基础上,但是 服务管理 设施 提供了一些支持实施强制认证的集中的安全政策。 强制认证可能结合 多因素身份验证 特性 实现任意特定于服务的访问控制策略。

被动认证

一些ca协议支持被动认证,访问匿名CAS-protected服务是理所当然的 当请求。 CASv2和CASv3协议支持此功能通过 网关 特性。 被动认证 补充强制认证;强制认证要求身份验证访问服务,被动的 匿名身份验证允许服务访问,尽管,没有身份验证。

代理身份验证

代理身份验证,或委托认证,提供了一个强大的、重要的,可能security-improving CAS的特性。 代理身份验证CASv2和CASv3协议支持的,由代理票 所请求的服务代表一个用户,因此,服务代理为用户身份验证。 代理身份验证是常用的在这种情况下,服务不能直接与用户交互和作为 替代重演到服务终端用户凭证。

然而,代理票携带风险服务接受代理票负责验证 代理链(服务的终端用户的身份验证的列表已经委托给到达 机票验证服务)。 服务可以选择不接受代理票完全(和避免的 负责验证代理链)只需验证/ serviceValidate票 验证端点,但经验表明它很容易混淆和配置 无意中使用/ proxyValidate端点不仔细检查中出现的任何代理链 票验证响应。 因此代理身份验证需要仔细配置适当的安全控制; 建议禁用代理身份验证组件在CAS服务器如果不是代理身份验证 需要的。

历史上任何服务可以获得proxy-granting票和一张去访问任何其他的代理服务。 换句话说,是分散的,而不是集中的安全模型。 提供的服务管理设施 集中控制的代理身份验证通过公开代理认证标志,可以启用或禁用 在每个服务的基础上。 默认情况下注册服务并不授予代理身份验证功能。

多因素身份验证

CAS支持多因素身份验证的两种模式:全球和每个服务。 全球的情况下 在多个凭证总是需要登录表单很简单:用户界面是什么 修改后接受多个证书和认证组件配置要求成功 提供的所有身份验证凭据。

每个服务是更有趣和更复杂的:

  • 水平的身份保证(贷款)凭证和凭证必须建立组。
  • 安全政策和凭据必须建立贷款/服务。
  • 服务访问政策必须通过配置 服务管理 设施。

前两个任务是至关重要的,但超出了本文的范围。 通过应用程序的服务访问策略 服务管理功能是通过声明来实现的 身份验证处理程序 必须成功进行身份验证凭证,以允许访问;例如,LDAP身份验证 处理程序和一个RSA美国身份验证处理程序。

由于多因素身份验证需要机构安全政策的发展,先进的组件 配置(也可能是自定义组件开发)和UI设计,它应该被认为是一个框架 比特性。 看到 多因素的配置 部分详细讨论的配置问题和实施建议。

凭证缓存和回放

的 ClearPass 扩展提供了一种机制来获取基本身份验证凭证,缓存(加密), 和回放来访问遗留服务的需求。 而 代理身份验证 建议代替密码回放,它可能需要集成遗留服务与CAS。 看到 ClearPass 文档了解详细信息。

服务管理

服务管理工具提供了许多特定于服务的配置控制影响安全 政策和提供一些支持集中的安全政策。 (注意,CAS历来支持 分散的安全策略模型。) 服务管理的控制:

  • 授权服务
  • 强制认证
  • 属性释放
  • 代理身份验证控制
  • 主题控制
  • 多因素服务访问策略

服务注册中心的服务管理机构由包含一个或多个注册服务, 其中指定了上面的管理控制。 服务注册中心可以控制通过静态配置文件, 一个Web用户界面,或两者兼而有之。 看到 服务管理 节的更多 信息。

授权服务

作为一个安全最佳实践,它是 强烈 建议限制服务管理功能 只包括已知的列表应用程序授权使用CAS。 离开管理界面 打开所有应用程序可能创建一个安全攻击的机会。

SSO饼干加密

票据授予饼干是一个HTTP cookie组上,CAS建立单点登录会话。 cookie值是通过设置中定义的默认加密和签名cas.properties 。 当样本数据为初始部署,这些钥匙必须再生/您的特定环境。 请 见本指南 更多信息。

票过期策略

票过期策略实现安全策略的主要机制。 票过期政策允许 控制一些重要方面CAS SSO会话行为:

  • SSO会话持续时间(滑动过期,绝对)
  • 票重用

看到 配置票务组件 部分的 详细讨论的各种过期策略和配置说明。

经过单

经过单或单注销物资货柜,是CAS的一个特色服务是CAS的终止的通知 SSO会话与SSO的期望服务终止访问会话的主人。 虽然经过单可以 提高安全性,其实从根本上是一个设施,不得终止访问所有的服务 一个单点登录会话期间使用。 以下补偿控制可以用来改善风险 经过单一的缺点:

  • 敏感的服务需要强制认证
  • 减少应用程序会话超时
  • 减少SSO会话持续时间

SLO可以发生在两个方面:从CAS服务器(幕后注销)和/或从浏览器(front-channel注销)。 对于渠道的注销,SLO过程依赖于SimpleHttpClient 类有一个线程池:它的大小必须定义正确对待所有注销请求。 额外not-already-processed注销请求暂时储存在一个队列发送之前:其大小定义线程池的全球产能的20%,可以调整。 CAS系统的大小至关重要的设置和它们的值不应该超过CAS服务器的实际能力。

登录节流

CAS支持策略驱动的功能限制连续失败验证试图防止暴力破解 和拒绝服务攻击。 功能是有益的后端身份验证存储的环境中所缺乏的 等效的功能。 在这种支持可在底层系统的情况下,我们鼓励使用它CAS功能;支持支持的理由是在所有依赖底层系统提供了功能 系统包括CAS。 看到 登录节流配置 部分为进一步的信息。

证书加密

一个开源的产品 Java简化加密 允许您替换明文密码文件在运行时解密加密的字符串。 Jasypt可以集成到Spring配置的框架,这样属性值和加载配置文件解密。 Jasypt的方法取代了该物业管理技术与一个识别加密字符串和解密。 这种方法使用密码的加密,这意味着系统仍然需要密码才能解密我们的凭证。 我们不想简单地将这个秘密从一个文件到另一个地方,和Jasypt避免通过关键的一个环境变量,甚至直接到应用程序通过一个web界面每次部署。

这种能力是有益的,因为它消除了需要嵌入文本凭证在配置文件中,并允许采用安全跟踪所有加密设置在源代码控制系统中,安全与他人共享构建配置。 敏感的数据只是局限于部署环境。

CAS安全过滤器

CAS项目提供了大量的钝 通用安全过滤器 适合patching-in-place Java CAS服务器和基于Java CAS客户机部署容易受到某些请求参数bad-CAS-protocol-input攻击。 清洁的过滤器配置身份验证请求参数和拒绝请求如果不符合CAS协议的事件,例如,一个参数重复多次,包括多个值,包含不可接受的值等。

它是 强烈 建议所有CAS部署被评估,包括这个配置如果有必要防止协议攻击在CAS容器和环境的情况下无法阻止恶意和badly-configured请求。

安全响应标头

作为CAS的一部分安全过滤器,CAS项目自动提供必要的配置 将HTTP安全头插入到web应对预防hst,XSS,交叉形架和其他攻击。 这些设置默认目前关闭,可能使通过以下设置:

# httpresponse.header.cache=false
# httpresponse.header.hsts=false
# httpresponse.header.xframe=false
# httpresponse.header.xcontent=false
# httpresponse.header.xss=false

复习和学习关于这些选项的更多信息,请访问 本指南 

Spring Webflow会话

CAS项目使用Spring Webflow来管理和协调身份验证过程的会话状态 webflow使用CAS由客户端然后通过在各种状态的验证和跟踪 的过程。 这个国家必须保护和加密,以防止会话劫持。 尽管CAS提供默认加密 设置的,它是 强烈 建议 所有CAS部署 生产前评估发布和再生这个配置防止攻击。

用户驱动的安全特性

以下特性可以用来承受SSO的一些用户控制的经验。

长期的验证

长期身份验证功能,通常被称为“记住我”,选择在CAS登录表单(通常通过复选框),以避免reauthentication在较长一段时间。 长期身份验证允许用户选择额外的便利为代价的减少安全。 降低安全的程度是一个函数的特点设备用于建立一个CAS SSO会话。 长期SSO会话建立的设备拥有或由单个用户的安全性略低于标准的CAS SSO会话。 唯一真正关心的是增加的生命周期缩短,从而增加曝光CAS票据授予票。 建立一个长期的CAS SSO会话从共享设备,另一方面,可以大大减少安全。 工件的可能性从先前的SSO会话影响随后的SSO会话建立的其他用户,即使面对单一的经过,可能会增加模拟的可能性。 尽管没有改善安全可行的缓解措施长期SSO会话共享设备,教育固有风险可能提高整体安全上的用户。

重要的是要注意,迫使验证取代长期验证,因此,如果一个服务 配置为强制认证,认证服务访问甚至在上下文的需要 长期的会话。

长期支持必须显式地启用通过身份验证 配置和UI定制 在安装过程中。 因此部署人员选择提供长期验证的支持,当可用 用户可以选择使用它通过选择CAS登录表单。

警告

CAS的支持可选的通知服务访问在SSO建立会话。 默认情况下,CAS 透明地请求所需的门票服务访问和呈现目标服务进行验证, 即在成功验证访问服务是允许的。 在大多数情况下,这种情况几乎立即 和用户不知道CAS认证过程需要CAS-enabled服务的访问。 可能会有 这个过程的一些安全效益意识,CAS支持 警告 国旗可能由用户选定 CAS登录屏幕上提供一个间隙通知页面显示之前访问服务。 默认情况下通知页面提供用户一个选项来进行ca认证或中止 在远离目标服务。

参考资料:https://apereo.github.io/cas/4.2.x/planning/Security-Guide.html

转载于:https://my.oschina.net/boreboluomiduo/blog/844531

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值