1

我的应用程序有 2 个模块

  • Spring Boot 后端 API
  • Angular 前端(SPA 应用程序)

两者都部署在Google 应用引擎 (GAE)中。

我使用Google IAP进行身份验证。启用IAP后,是否有任何方法可以为组织内的不同用户生成IAP JWT 令牌,以对来自 Web 客户端的 API 进行身份验证。

我尝试了使用服务帐户的令牌生成机制。但对于我的场景,我只想验证和授权用户而不是服务帐户。我发现这个参考可以为用户启用 Web 资源访问,但它使用的是基于 cookie 的授权。对于 angular 等应用程序,这不是推荐的方式。

4

2 回答 2

3

如果您使用IAP来保护您的后端 API,这意味着您的用户拥有 Google 帐号或在 Cloud Identity 中管理的帐号。

在您的 Angular 前端应用程序中,您可以使用Google Sign-In for Websites检索用户的 JWT 令牌。

为了轻松Google Sign-in与 Angular 集成,我建议您使用Rubenng-gapi

工作流程的主要线路:

  • Angularng-gapiGoogle Sign-in幕后使用
  • 用户通过其 Google 帐户进行身份验证
  • 您可以检索idToken作为 JWT 令牌的 GoogleUser。
  • 每个 HttpRequest 都可以执行Authorization: Bearer JWT
  • IAP 将接受请求。

为了更好地理解如何使用,请查看lib 创建者制作的ng-gapi这个stackblitz Demo 。

我还建议您使用这些资源:

请注意,您需要使用为您的应用配置的OAuth 2.0 客户端 IDIdentity-Aware Proxy,并添加正确的Authorized JavaScript origins

于 2020-02-06T14:48:51.790 回答
0

是的,您可以使用 angular-oauth2-oidc 生成 JWT 令牌。

获取默认的 IAP Web App 客户端 ID 和客户端密码。输入凭据后,使用 AuthConfig 并重定向到您的链接;您可以在重定向后捕获令牌。

此链接包含所有详细信息:

https://medium.com/@ishmeetsingh/google-auth-integration-with-angular-5-and-angular-oauth2-oidc-ed01b997e1df

您告诉过您尝试从服务帐户进行身份验证。您是否能够为服务帐户生成 JWT?我能够捕获个人帐户的 JWT 令牌并使用它。

请提供有关您如何从服务帐户进行身份验证的更多信息。

谢谢,巴拉特

于 2020-02-13T20:16:25.917 回答