2015-06-30 47 views
2

是否有一種很好的「審覈」方式來處理不同租戶的同一帳戶的多個副本?是否有一些推薦的設計模式?在多租戶環境中處理重複和跨租戶帳戶

在我的情況,我們的應用途徑租戶基於URL:

https://ten_a.software.com --> selects "ten_a" tenant 
https://ten_b.software.com --> selects "ten_b" tenant 

我遇到了這樣的問題:

鮑勃,誰在ten_a有帳戶,試圖登錄到ten_b.software.com,或甚至softare.com。如果鮑勃只是在他的瀏覽器中輸入網址,那麼讓他知道使用正確的地址並不多,但是當另一個實體嘗試通過OAuth2交換來驗證鮑勃時,這會變得更加複雜。該第三方可能不知道哪個租戶指示其身份驗證請求。我只在這裏看到兩種解決方案:

  1. 讓Bob在他的用戶名/密碼旁輸入他的租戶信息。大減是用戶體驗和UI開銷。
  2. 根據用戶名實現租戶路由器。大減這裏就像是一個雷區。當鮑勃有兩個不同租戶的帳戶時,情況會變得更加複雜。

我錯過了什麼嗎?

+0

鮑勃是否擁有全球賬戶,或者他是否擁有每個租戶的賬戶? – aaaantoine

+0

@aaaantoine每個租戶一個。沒有全球租戶。 – Goro

回答

1

我在這裏扭轉你的問題。假設鮑勃在ten_aten_b上都有帳戶?

如果Bob給出一個可以將Bob的租戶專用帳戶連接在一個用戶下的全網帳戶,那麼這將簡化對第三方認證的支持。在一個模棱兩可的情況下,仍然會有UI的開銷,因爲Bob將不得不選擇正確的租戶,但這是一個必要的罪惡。

如果問題是Bob @ ten_a與Bob @ ten_b不同,那麼URL路由變得非常重要,尤其是考慮到OAuth支持。只有Bob訪問特定租戶時才啓用OAuth(例如ten_a.software.com)。嘗試使用OAuth登錄到software.com應該失敗。

如果Bob忘記租戶特定的URL,則應由租戶管理員負責提醒他。

這幾乎是Google Apps在我多年前有一個帳戶時仍在使用的模式。

+0

謝謝。這是一個相當全面的問題,並且鑑於這是唯一的一個,它值得接受:) – Goro