【问题标题】:Implementing SSO and Spring Security for SAAS为 SAAS 实施 SSO 和 Spring Security
【发布时间】:2014-02-18 21:58:11
【问题描述】:

这是我们在高层次上想要的。

我的要求,

  1. 客户应该能够使用他们的现有用户名/密码访问我的应用程序。

  2. 我的客户应该能够向我提供他们的用户角色,并在此基础上管理服务器中的资源授权。

  3. 客户端将共享数据库。 (多租户)。

我遇到的 OAuth 2.0 示例是利用 Facebook/Google 等身份验证服务器,用户可以通过他们的 google 或 facebook 帐户登录。 我不希望我的客户能够使用他们自己的帐户登录。

就 CAS 身份验证服务器而言,它会将用户引导至其自己的登录页面。

我正在寻找一种标准方式,在这种方式中我可以使用 Spring Security 并允许我的客户单点登录用户自己的凭据。任何参考都会有很大帮助。谢谢。

【问题讨论】:

    标签: angularjs spring-mvc spring-security oauth-2.0 cas


    【解决方案1】:

    如前所述,CAS 是一种网络 SSO,因此您需要通过它自己的身份验证页面才能使 SSO 正常工作。有很多方法可以让 CAS 与您的身份验证持久系统一起工作(在我的项目中,我通常使用 JPA,因为我的客户有许多仅基于关系数据库持久性的旧应用程序)。 在您的项目中,我想您可以设置 CAS 以使用您的应用程序身份验证方法,而您的应用程序可以直接指向 CAS 进行身份验证。我的意思是你的应用程序也应该使用 CAS 进行单点登录,这样用户就可以只输入一次他们的凭据。最后,您可以自定义 CAS 主题以获得与您的应用程序具有相同布局的登录和错误页面(您甚至可以在 iframe 中加载 CAS 登录页面,然后如果您想将其集成到您的 web 应用程序中,则在成功时重新加载您的应用程序页面) .

    如果我理解你写的内容,你希望它表现得这样:

    1. 您登录您的应用程序
    2. 您的应用程序告诉 CAS 您已登录
    3. 您访问另一个应用程序
    4. 其他应用程序询问 CAS 用户是否已登录并且 CAS 回答“是”

    但对工作流程的“简单”解释是:

    1. 您尝试访问任何使用 CAS(您或其他人)保护的应用程序的安全部分
    2. 应用程序询问 CAS 用户是否已登录
    3. CAS 回答否,因此用户被重定向到 CAS 登录
    4. 用户使用 CAS 进行身份验证
    5. CAS 将用户重定向到调用应用程序
    6. 应用程序询问 CAS 用户是否已登录并且 CAS 回答“是”
    7. 用户可以访问应用程序的安全部分
    8. 用户尝试访问另一个应用程序
    9. “另一个”应用程序询问 CAS 用户是否已登录并且 CAS 回答“是”
    10. 用户可以访问“另一个”应用程序的安全部分

    【讨论】:

      【解决方案2】:

      CAS 是一个 Web SSO,因此您将能够在多个 Web 应用程序之间共享用户身份,并且 Spring Security 是一个很好的 CAS 客户端。 您还可以启用 CAS 服务器将身份验证委托给 Facebook 或 Google。 这个想法是让您的 CAS 服务器对您的用户进行身份验证并获取他们的个人资料,然后将他们推送到 Web 应用程序。

      【讨论】:

      • 我不希望我的客户/用户进入第三方登录页面并输入他们的登录凭据。我的客户(已登录到他们的应用程序)只需单击一个链接即可将他们带到我的 SAAS 应用程序。
      • 通过 CAS,我看到他们被重定向到 CAS 登录页面。我的 SAAS 客户/用户不喜欢去第三方登录页面(CAS 登录或 Facebook/gmail 登录)并重新输入他们的登录凭据。
      • 如果您想为多个应用程序从 SSO 中受益,您需要将身份验证委托给 CAS 服务器,并且登录页面将由 CAS 服务器托管...
      【解决方案3】:

      我认为 CAS 提供了 REST API。

      如果可以用于登录,那么各种应用程序可以显示自己的登录界面并将用户名/密码发送到 CAS。

      【讨论】:

        猜你喜欢
        • 2013-11-20
        • 2011-03-17
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 2015-12-28
        • 2019-09-07
        • 1970-01-01
        • 2016-03-20
        相关资源
        最近更新 更多