簡體   English   中英

Angular + Google Identity Platform 多租戶

[英]Angular + Google Identity Platform multi-tenancy

我有一個當前使用 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 文檔建議允許用戶從列表中進行選擇,但該解決方案對我們不起作用。

簡短的回答是,不,您必須指定租戶才能對用戶進行身份驗證。 平衡安全性和用戶友好性的一種方法是兩階段方法:

  1. 維護用戶到租戶映射,每當在租戶中添加、修改或刪除用戶時都會更新該映射。 使用異步觸發器來管理並存儲電子郵件、租戶 ID 和狀態(啟用/禁用)。

  2. 在 Cloud Run 上創建一個簡單的安全 REST API 端點,返回與該電子郵件關聯的一個或多個租戶。

登錄流程與 Google 自己的身份驗證流程非常相似:

  1. 您的登錄表單將有一個用於電子郵件地址的字段。 用戶輸入他們的電子郵件地址並提交表單。

  2. 電子郵件地址被發送到 API 端點,該端點返回與其關聯的一個或多個租戶。

  3. 密碼輸入字段出現,用戶完​​成針對正確租戶的身份驗證過程。 如果出現多個租戶,他們必須選擇他們想要的租戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM