2017-08-02 109 views
0

如何在Azure多租戶應用程序中登錄特定租戶?如何在Azure多租戶應用程序中登錄特定租戶?

我有以下情形:

  1. 一個註冊的Azure Application for multi-tenant scenario(Web應用程序)
  2. 兩個應用程序角色「管理員」和「用戶」
  3. 兩個或兩個以上Azure的目錄與至少一個用戶。例如。
  4. - 瑪麗@ COMPA
  5. - 喬@ CompB的
  6. - 斯科特@ compc命令
  7. 所有這些用戶都在自己的目錄分配到「管理員」角色的應用程序
  8. 然後我說瑪麗@ CompA到目錄CompB和CompC作爲訪客用戶並分配應用程序角色「用戶」

我可以成功登錄所有用戶到我的應用程序。所有用戶使用自己的目錄登錄並擁有「管理員」權限。

但是,我怎樣才能登錄與租戶/目錄CompB或CompC(與「用戶」權利只)的瑪麗?

或者,我該如何查詢用戶所屬的所有租戶/目錄。 在Azure管理門戶中,我可以切換到我是其成員的目錄。

我發現another question這是一個可能的重複。

回答

0

通過修改用於登錄和令牌獲取的「租戶」端點,可以非常輕鬆地完成此操作。

要OAuth 2端點Azure的Active Directory是:https://login.microsoftonline.com/{tenant}/oauth2/

當您創建多租戶應用程序,可以設置{tenant}common它允許「租戶發現」。如果用戶是多個租戶的成員,它將選擇他們的房客作爲默認登錄。如果您希望用戶專門登錄成爲其成員的其他承租人,則需要在{tenant}字段中指定該承租人。你將不能在這裏使用共同的,所以你必須有一些推測知道用戶是哪個租戶的一部分。這可以像允許用戶將您的租戶指定爲Web應用程序的登錄過程一樣簡單。

爲了把它放在你的榜樣的話,瑪麗:

  • https://login.microsoftonline.com/common/oauth2/將籤她到她家房客,COMPA
  • https://login.microsoftonline.com/CompA/oauth2/會做同樣的,COMPA
  • https://login.microsoftonline.com/CompB/oauth2/將簽署她的到CompB的普通用戶
  • https://login.microsoftonline.com/CompC/oauth2/將籤她到compc命令作爲普通用戶

我希望這有助於!

+0

設置{tenant]明確爲我工作。但是現在我怎樣才能獲得用戶所屬的所有租戶?可以通過oauth(聲明)請求登錄信息嗎?已登錄的用戶應該在登錄後選擇活動租戶,或者可以在運行應用程序時切換租戶(例如,Azure管理門戶中可能會這樣) –

+0

我的理解是,此API不可公開使用。我建議你允許用戶指定他們想登錄哪個租戶。 –