将用户标识作为私钥加密值传递的应用程序是否可以访问使用CAS进行SSO的另一个应用程序

时间:2016-05-30 20:31:55

标签: spring-security single-sign-on cas

让我们说我们有两个应用程序

  1. 使用CAS进行身份验证的App1
  2. 外部应用程序App2一些自定义身份验证
  3. ID为“user1”的用户。此用户登录App2后,我们要显示一个链接(App1链接),允许用户登录App1。用户点击链接后应该转到App1。

    App2仅将使用私钥加密的用户ID传递给App1。它不会通过密码。

    用户--------->外部App2 -----加密用户ID -----> CAS ===== App1

    这是否可以实现,因为请求不包含密码? 你能不能指导我这个方法,因为这是我第一次参与CAS和SSO。

    非常感谢您的帮助。

    我们正在使用CAS 3.4和Spring 3集成。

1 个答案:

答案 0 :(得分:1)

是的,这是可能的,在您的App1中,您无需检查密码,因为CAS将进行身份验证,而当您单击链接(APP1)时,在其他应用程序级别中,您必须传递访问令牌和用户名, App1你必须使用CAS库,那些库会检查请求是否来自可信站点,而Access令牌(这里我们称之为服务票证和代理授予票证)是否有效。完成这两项检查后,您的身份验证功能/方法将被执行(您必须像这样配置),如果您的数据库中存在用户名,您必须创建会话,并且您可以假设它已登录。功能可能因技术和要求而异。