2016-10-08 52 views
0

我正在開發一個SaaS應用程序,要求外部組織的AD用戶將約會同步到Office 365日曆事件。Azure Active Directory用戶和使用Microsoft Graph的SaaS應用程序Api

管理員用戶場景:

  1. 管理員進口所有AD用戶到應用程序。
  2. 該應用程序將管理員重定向到Microsoft登錄和請求權限。
  3. 管理員可以讓應用訪問用戶的日曆。

普通usersScenario:該應用程式

  1. 用戶登錄。
  2. 用戶創建預約並同步到Office 365日曆(不詢問權限)。

我使用以下端點中的Microsoft Graph API:

Authority = "https://login.microsoftonline.com/common/oauth2/authorize" 
Resource = "https://graph.microsoft.com/" 

如果我想給正常用戶訪問他們的Microsoft數據,做我需要改變租戶「共同」他們租戶ID?

我的另一個問題是,管理員同意如何根據我的方案工作?

+0

當您說「AD用戶」時,是指Azure AD(雲)還是Windows Server AD(內部部署)。 –

+0

Azure Active Directory(雲) – h3n

回答

1

首先,我建議不要將所有用戶導入您的應用。最好只在用戶登錄時以「及時」的方式配置實際需要的用戶。如果您的應用具有在租戶中列出其他用戶有用的場景(例如「人員選擇器」),那麼您可以按需使用Microsoft Graph API。

接下來,回答您的其中一個問題:不,您不應該將Authority端點切換到租戶特定端點。繼續使用common端點,以確保您可以從任何租戶身份驗證任何用戶。

可以通過在驗證請求期間使用prompt=admin_consent查詢參數明確請求管理員同意。一種方法是讓您的應用執行常規登錄,然後在用戶登錄後使用Microsoft Graph API檢查用戶是否爲租戶管理員。如果是,則可以重定向它們以重新進行身份驗證,但這次使用prompt=admin_consent選項。或者,您可以爲應用程序創建一個「註冊」流程,從一開始就使用prompt=admin_consent(適當的注意事項是隻有租戶管理員可以這樣做,因爲非管理員會從Azure AD中收到他們可能不會理解的錯誤)。

相關問題