首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CAS和SAML2单点登录示例

CAS和SAML2单点登录示例
EN

Stack Overflow用户
提问于 2014-04-22 14:52:23
回答 1查看 4K关注 0票数 3

我们有十几个内部管理web应用程序(主要是Java),员工使用不同的工作流,每个应用程序都有自己的、完全不同的登录/身份验证系统。我被要求在一个单一的唱歌系统下把他们联合起来。我收到了以下图表,作为起点:

如您所见,每个应用程序都使用CAS客户端连接到CAS服务器。这个服务器还有带有Shibboleth插件(?)的Apache。配置。这个CAS服务器然后与我们的Active Directory ("AD")服务器进行通信。

我需要确保我完全理解这些技术是如何一起工作的:

  • CAS服务器和Apache/Shibboleth之间发生了什么?
  • Apache/Shibboleth和“信任商店”之间发生了什么?
  • CAS服务器和AD之间的通信是什么?
  • 从CAS服务器发送回每个SAML2客户端的这个SAML2令牌中存储了什么?
  • 作为一名,我如何处理SAML2令牌(如果auth失败了,如何处理它的不足)来实际登录用户?
  • 这里有没有更好的技术选择:如果是,他们是什么,为什么?请记住,所有这些都是Java应用程序,但其中一个是C#.NET应用程序。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-23 05:03:36

以下是你的几个答案:

首先,让我简要介绍一下CAS客户机和CAS服务器之间的交互是如何正常工作的:(我不熟悉Shibboleth部分,所以我省略了这一点。)

  1. 用户点击应用程序网页。
  2. 应用程序将用户重定向到CAS。
  3. CAS使用标准cookie和会话来确定用户是否已经登录。
  4. 如果用户未登录,CAS将显示一个登录表单,供用户提供登录凭据。如果用户已经登录,CAS跳过步骤#7。
  5. CAS然后与AD交互,以验证所提供的凭据是否有效。
  6. 如果是,那么CAS将在用户中登录。
  7. 然后CAS将重定向回应用程序,提供一张票证。
  8. 应用程序直接调用CAS来验证所提供的票证。
  9. 如果票证有效,那么CAS将返回用户信息作为对请求的响应。
  10. 然后,应用程序为用户创建一个经过身份验证的会话,可能会根据CAS提供的信息查找用户信息,并在适当的地方重定向用户信息。

现在请回答你们的问题:

  • CAS和AD : CAS将实际登录到AD,并使用用户提供的凭据查找和验证用户。如果您正在使用林,请确保使用正确的端口登录到全局目录,因为这很容易被忽略。
  • 令牌的内容并不重要,因为标准的CAS协议将将令牌发送回CAS并在响应中检索用户详细信息。
  • 作为一个开发人员,这实际上很难处理,因为令牌与应用程序绑定在一起,只能使用一次,而且出于安全考虑,必须在很短的时间内(即发送回CAS以进行验证)使用,否则它将过期。

如果您主要从事CAS,并且您有能力在您的应用程序中执行您自己的CAS客户端,CAS可以是一个非常好的解决方案。不幸的是,CAS没有完全的SAML2支持,而是使用它自己的协议,尽管它的协议非常类似于SAML2的工件配置文件。如果您希望与其他SAML2客户端集成,则需要完成一些工作。

此外,如果您的java应用程序碰巧使用Spring,Spring安全性将包括一个现成的CAS客户端。

编写自定义客户端也非常容易,因为您可以看到协议并不十分复杂。

此外,虽然这是一个更多的工作,可能是一个痛苦的设置,如果您的员工已经通过windows登录到您的域,那么您实际上可以回过头来配置CAS使用用户已经提供的windows登录信息,而不是提示用户使用登录表单让他们重新输入他们的windows凭据。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23223003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档