【问题标题】:How to share credentials across multiple services accessing Google App如何在访问 Google App 的多个服务之间共享凭据
【发布时间】:2018-11-23 05:06:16
【问题描述】:

首先,对于我在这个话题上的幼稚,我提前道歉。

我正在尝试创建一些使用 API 网关公开的微服务。其中一些服务需要来自 Google 帐户的凭据才能访问 Google 日历/Gmail 等。有没有什么办法让用户只需登录一次,以便在服务之间共享所有凭据?还是应该只有一项服务面向具有凭据的 Google 服务?

【问题讨论】:

  • 您是否可以在面向内部的 vpc 后面拥有一个微服务。该服务可以与数据库通信。您的外部服务应该能够在登录后使用一些用户标识符(用户 ID)访问此内部服务,以获取要在您的公共层上使用的谷歌信用。您的面向公众的服务也必须与面向内部的服务在同一个 vpc 上才能与之通信,可能通过一些 API -> GET、POST、PATCH、DELETE 来修改 SQL 或任何数据库。谷歌信用必须采用刷新令牌的形式,以便您可以使用 oauth 流程
  • 你使用 Kubernetes 吗?如果是,您可以将令牌存储在一个秘密中:cloud.google.com/kubernetes-engine/docs/concepts/secret

标签: authentication go google-cloud-platform microservices credentials


【解决方案1】:

似乎有可能,您可以要求用户一次性对您的应用程序所需的所有权限进行身份验证和授权。但是想想用户,当应用程序需要同时访问 gmail、环聊、照片、相机等时,用户通常不相信该应用程序。因此,推荐的方法是询问具体的permission when the application requires,以便用户可以了解您的应用执行的每个操作。

有很多不同的方法来解决您的问题,具体取决于细节,但是以下链接可以帮助您了解从哪里开始:

  • 此链接(Google Sign-in) 提供有关所有身份机制的广泛上下文,以寻找最适合您的机制。

  • 另一个解释了所有可能的Identity mechanisms 特定用例。

这个用于 Google 日历的 authentication example 很有用,但这篇文章解释了如何解决 microservices authentication and authorization

【讨论】:

    猜你喜欢
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多