0

要求

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

部署

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

  • 我已经为我的谷歌应用引擎项目创建了 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 的精彩世界?我想我将在“看门人 Web 应用程序”(Java) 上有代码,并且可能在我的appengine-web.xml 中有一些配置 xml。 我的应用引擎应用程序是否需要任何额外的代码?有没有人有分步说明或示例代码/配置?我已阅读https://developers.google.com/identity/protocols/OAuth2ServiceAccount,但不知道如何申请。

在此先感谢您的帮助。我猜这对于 SaaS 提供商来说是一个非常常见的场景?

4

1 回答 1

0

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

我建议查看OAuth Bible以了解 OAuth 2.0 两腿和三腿流程是如何实现的。三腿身份验证更安全,但您的防火墙会带来问题。

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

于 2016-01-14T21:58:27.793 回答