通过防火墙后面的Wildfly / Keycloak安全Web应用程序调用oauth2来保护谷歌应用引擎应用程序

时间:2015-12-06 23:45:47

标签: java google-app-engine oauth-2.0 wildfly keycloak

要求

  • 我的要求是编写一个在防火墙后运行的安全Web应用程序,并通过OAuth2协议访问Google App引擎应用程序。不应以任何其他方式访问Google应用引擎(由开发人员/管理员保存)。编程语言是Java。授权是服务器到服务器。

部署

  • 我将有一个"守门员"应用程序在带有Keycloak 的 WildFly(JBoss)上运行,并将使用活动目录在防火墙后面运行的 Web应用程序上登录我的用户。通过这种方式,在我所服务的业务中拥有帐户的每个人都应该可以访问Google应用引擎应用。同样,此处理作为部署到WildFly的Java EE Web应用程序在业务防火墙后面运行。
  • 成功登录后的下一步是让用户重定向到Google应用引擎所服务的网页。 我不希望任何其他用户(我的开发者帐户/所有者帐户除外)能够访问此网址。

  • 我已经创建了JSON用户凭据文件,并从谷歌开发者控制台下载了我的谷歌应用引擎项目。 我还在我的看门人项目的maven pom文件中包含了google-api-client。 <dependency> <groupId>com.google.api-client</groupId> <artifactId>google-api-client</artifactId> <version>1.20.0</version> </dependency> 来自https://developers.google.com/api-client-library/java/google-api-java-client/setup

问题

  • 如何使用google api客户端编码(Java)OAuth 2.0的精彩世界?我想我将在&#34;守门员网络应用程序&#34; (Java)以及我的 appengine-web.xml中的一些配置xml。我的应用引擎应用程序是否需要任何其他代码?有没有人有分步说明或示例代码/配置?我已阅读https://developers.google.com/identity/protocols/OAuth2ServiceAccount,但我对如何申请感到茫然。

提前感谢您的帮助。我猜这是SaaS提供商非常常见的场景吗?

1 个答案:

答案 0 :(得分:0)

如前所述,您至少要问两个问题。首先,如何针对OpenID Connect 1.0认证服务器(在本例中为Keycloak)在防火墙后面对应用程序进行身份验证。其次,如何使用google-api-client

我建议您查看OAuth Bible以了解如何实施OAuth 2.0双腿和三脚流程。三脚认证更安全,但防火墙会造成问题。

此外,如果您将google-api-client部分分解为更具体定义的问题,您将更有可能获得帮助。