【问题标题】:Google Apps domain integrationGoogle Apps 域集成
【发布时间】:2014-08-26 09:01:42
【问题描述】:

我们有一个 Java Web 应用程序(使用 struts 和 hibernate)并希望用户自动登录到 Google Apps 域帐户。

我们已经设置了 Google Apps for Education 域帐户并在其中创建了用户,我们的 Java Web 应用程序中也有相同的用户。

要求是当用户登录我们的应用程序门户时,他们是一个链接到谷歌应用程序,一旦他们点击这个链接,它应该登录他们而不要求输入密码。

我们使用 Tomcat 7 作为 Web 应用程序的服务器。我们应该使用哪个 SSO 工具来执行此操作? Oracle 的 SSO 是付费的,Shiboleth 不适用于 Tomcat 7。

任何帮助高度赞赏? SSO 是唯一的选择还是另一种方法?

谢谢

【问题讨论】:

    标签: java web-applications single-sign-on google-apps-for-education


    【解决方案1】:

    任何支持 SAML2 协议的 SSO 解决方案都应该可以工作。除了 Oracle、IBM、CA 等提供的昂贵的解决方案之外,您还可以找到以下与 Tomcat7 完全兼容且开源的解决方案:

    • Apereo (ex Jasig) CAS :在教育界使用了很多。设置简单但特定配置(如高级身份验证模块)可能需要一些编程工作。它支持 Google Apps 身份验证,但不支持其他 SAML2 服务。如果您真的只想登录 Google Apps,这是一个非常简单的解决方案。

    • Forgerock OpenAM:以前的 Sun OpenSSO,用于教育和工业。更多功能,支持大多数 SAML2 服务提供商,包括 Google Apps,但更复杂。

    请注意,如果您已经拥有门户解决方案,则应检查该门户是否尚不支持 SAML2 联合并可以充当 SSO 服务器。

    另请注意,您需要链接门户身份验证和 SSO 服务器身份验证,以确保您的用户不会进行两次身份验证。这可以通过两种方式完成:

    1. 告诉 SSO 服务器将身份验证委托给您的门户解决方案。这可能需要一些简单的自定义编码,具体取决于您的门户。
    2. 相反:告诉门户使用 SSO 作为身份验证解决方案。大多数门户网站都支持某种身份验证委托,所以它应该只是配置?

    最后,如果您的身份验证是在 Tomcat 本身上设置的(也就是说,如果您的门户已经将身份验证委托给 Tomcat 容器),那么您可以对 SSO 服务器执行相同的操作。

    【讨论】:

    • 我们有一个自定义的 java 应用程序。是否有任何可用于 Apereo 或 OPenAm 与谷歌应用程序集成的示例。
    • 这两个应用程序都有关于如何与 Google Apps 集成的详细文档。您可以在我在回答中提供的网站上找到它。
    • 谢谢大卫。我们在弄清楚如何让我们的应用程序而不是在 CAS 中验证用户时遇到了麻烦。任何想法如何将请求从 CAS 转发到我们的服务器进行身份验证?
    • 这篇文档解释了如何编写自定义 AuthenticationHandler :wiki.jasig.org/display/CAS/…
    • 您可能需要将用户重定向到您的应用程序,让他进行身份验证(如果尚未完成),然后使用某种令牌重新重定向到 CAS 以确认用户的身份。跨度>
    猜你喜欢
    • 2017-10-31
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    相关资源
    最近更新 更多