【问题标题】:Angular + Google Identity Platform multi-tenancyAngular + Google Identity Platform 多租户
【发布时间】:2021-11-10 17:23:17
【问题描述】:

我有一个当前使用 Firebase 身份验证和 Firebase 托管的 Angular 应用。我正在考虑使用多租户迁移到 Google Identity Platform。在这种情况下,必须将租户 ID 传递给 Angular 应用中的 auth 对象。

我的问题是我们如何动态找到合适的租户 ID。如果我们在 Angular 应用程序中使用子域名或路径来区分租户,我们需要将这些人性化的名称映射到 Google Identity Platform 租户 ID。例如,子域可能是:

tenantname.mysite.com

但租户 ID 类似于

tenantname+some_random_string

有没有办法安全地做到这一点,因为用户还没有登录,所以我们不能使用例如经过身份验证的 API 调用,还是具有 Firebase 安全规则的数据库上的地图?

Google 文档建议允许用户从列表中进行选择,但该解决方案对我们不起作用。

【问题讨论】:

    标签: angular firebase google-identity


    【解决方案1】:

    简短的回答是,不,您必须指定租户才能对用户进行身份验证。一种平衡安全性和用户友好性的方法是两阶段方法:

    1. 维护用户到租户的映射,每当在租户中添加、修改或删除用户时,该映射就会更新。使用 asynchronous triggers 管理并存储电子邮件、租户 ID 和状态(启用/禁用)。

    2. 在 Cloud Run 上创建一个简单的安全 REST API 端点,返回与该电子邮件关联的一个或多个租户。

    然后登录流程与 Google 自己的身份验证流程非常相似:

    1. 您的登录表单将包含一个电子邮件地址字段。用户输入他们的电子邮件地址并提交表单。

    2. 电子邮件地址被发送到返回与其关联的一个或多个租户的 API 端点。

    3. 密码输入字段出现,用户完​​成对正确租户的身份验证过程。如果出现多个租户,他们必须选择他们想要的租户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 2021-01-14
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多