2016-05-16 73 views
1

我試圖通過使用公共端點與本機應用程序來獲取用戶的訪問令牌。我已經嘗試了login.windows.net/common/OAuth2/Authorize和 login.windows.net/common作爲AuthenticationContext的權限。Azure本機應用程序通用身份驗證

這裏是我使用的功能:

authResult = authContext.AcquireToken(resource, clientID, redirectUri, PromptBehavior.Auto); 

這裏是我的應用程序的權限:

的Windows Azure Active Directory中:訪問目錄作爲登錄用戶

的Windows Azure服務管理API:以組織的身份訪問Azure服務管理

當我嘗試驗證身份時,我可以登錄,但n我收到錯誤:

AADSTS65001:用戶或管理員未同意使用ID爲「{client ID}」的應用程序。爲此用戶和資源發送交互式授權請求。

我可以登錄就好使用:

https://login.windows.net/ {} tenantID/OAuth2用戶/授權

,但我希望用戶能夠登錄在不知道他們的租戶ID是什麼。感謝您的幫助。

回答

0

事實證明,您無法使用Microsoft帳戶的通用端點,這正是我所做的。您只能使用Azure Active Directory帳戶。

+0

是啊,既然你可以添加一個Microsoft帳戶到多個目錄,它會將你登錄到哪個目錄? – juunas

+0

確切地說,我當時並不知道,所以我想我會在這裏發佈,以防其他人不知道。 – Christian

+0

某些Microsoft客戶端ID(例如'1950a258-227b-4e31-a9cf-717495945fc2')可讓您執行此操作。登錄後,您可以使用結果令牌查詢「https://management.azure.com/tenants?api-version = 2014-01-01」端點以獲取用戶所有租戶的列表到(並且有一個很短的時間窗口,您可以在沒有進一步用戶提示的情況下將您的訪問令牌添加到任何或所有這些租戶的令牌中)。這似乎是Azure Powershell和Visual Studio發現所有租戶和潛艇的方式。令人沮喪的是,似乎沒有辦法用你自己的應用程序來做到這一點。 –

相關問題