Java 谷歌应用程序域集成

Java 谷歌应用程序域集成,java,web-applications,single-sign-on,google-apps-for-education,Java,Web Applications,Single Sign On,Google Apps For Education,我们有一个JavaWeb应用程序(使用struts和hibernate),希望用户自动登录到GoogleApps域帐户 我们已经为教育领域帐户设置了谷歌应用程序,并在其中创建了用户,我们的java web应用程序中也有相同的用户 要求是,当用户登录到我们的应用程序门户时,他们的应用程序是一个指向谷歌应用程序的链接,一旦他们点击这个链接,它应该在不要求密码的情况下登录 我们使用Tomcat7作为web应用程序的服务器。我们应该使用哪个SSO工具来执行此操作?Oracle的SSO是付费的,Shibo

我们有一个JavaWeb应用程序(使用struts和hibernate),希望用户自动登录到GoogleApps域帐户

我们已经为教育领域帐户设置了谷歌应用程序,并在其中创建了用户,我们的java web应用程序中也有相同的用户

要求是,当用户登录到我们的应用程序门户时,他们的应用程序是一个指向谷歌应用程序的链接,一旦他们点击这个链接,它应该在不要求密码的情况下登录

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

非常感谢您的帮助?SSO是实现这一点的唯一选项或其他方法


谢谢

任何支持SAML2协议的SSO解决方案都应该可以工作。除了Oracle、IBM、CA和其他公司提供的昂贵解决方案外,您还可以找到以下与Tomcat7配合使用且开源的解决方案:

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

  • :原名Sun OpenSSO,用于教育和工业。更多的功能支持大多数SAML2服务提供商,包括谷歌应用程序,但更复杂

注意,如果您已经有了一个门户解决方案,那么应该检查该门户是否已经不支持SAML2联合,并且可以充当SSO服务器

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

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

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

    我们有一个自定义java应用程序。Apereo或OPenAm是否都有与谷歌应用程序集成的示例。这两个应用程序都有关于如何与谷歌应用程序集成的详细文档。你可以在我的回答中提供的网站上找到。谢谢大卫。我们很难弄清楚如何使我们的应用程序对用户进行身份验证,而不是在CAS中。您知道如何将请求从CAS转发到我们的服务器进行身份验证吗?这篇文档介绍了如何编写自定义AuthenticationHandler:您可能需要将用户重定向到您的应用程序,如果尚未完成,请让他进行身份验证,然后使用某种令牌重新重定向到CAS,以确认用户的身份。