2017-06-12 318 views
2

我正在編寫一個使用AAD獲取獲取令牌的測試應用程序,並且此調用對TenantId爲「abc」的一個用戶成功,但對於其他用戶tenantId「XYZ」與消息:[AADSTS65001]:用戶或管理員尚未同意使用應用程序

用戶或管理員沒有同意與ID f5986c14-cdb9-4e68-a89e-119d15b33afc使用該應用程序 。爲此用戶和資源發送一個交互式 授權請求。

請注意:

  1. 我在AAD

  2. 我已經加入這些用戶從另一個租戶進入目錄的用戶列表中的用戶角色,也創造了一個原生應用程序,我們將本地應用程序的權限授予給Windows中的目錄中的所有用戶蔚藍管理門戶Screenshot Here

+1

歡迎堆棧溢出,請[乘觀光] (https://stackoverflow.com/tour),請確保你閱讀了[我如何提出一個好問題?](https://stackoverflow.com/help/how-to-ask)並更新了你的問題並提供了更多信息。 – lordrhodos

回答

2

擁有xyz域名的公司([email protected])的IT管理員必須代表整個公司表示同意,以便該公司的用戶能夠使用您的應用程序。這裏是流動的一個很好的例子:

https://blog.mastykarz.nl/implementing-admin-consent-multitenant-office-365-applications-implicit-oauth-flow/

+0

感謝您的回覆,是的,我們閱讀此文檔,它看起來只適用於Web應用程序。原生應用程序如何?我們的應用類型是本機應用。 對於本地應用程序,我認爲它有點不同。 – Priyaa

+0

@Priyaa原生和Web應用程序的流程相同。 –

0

無論本地應用程序和Web應用程序,如果你想能在其他租戶的用戶可以使用該應用程序,所需的應用先給同意。而你在帖子中鏈接的數字只是授予租戶應用程序註冊的許可。

AidaNow已經提供使用adal.js授予管理員同意。我們還可以通過使用prompt參數來發出HTTP請求以輕鬆授予管理員同意。這是給你參考的請求(參見this link):

https://login.microsoftonline.com/common/oauth2/authorize? 
client_id=6731de76-14a6-49ae-97bc-6eba6914391e 
&response_type=code 
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F 
&response_mode=query 
&resource=https%3A%2F%2Fservice.contoso.com%2F 
&state=12345 
&prompt=admin_consent 

更多細節關於同意,你可以參考以下文件:

How to sign in any Azure Active Directory (AD) user using the multi-tenant application pattern

+0

非常感謝您的回覆。我嘗試了命令abov,但是當我登錄時,我收到以下錯誤「對不起,但我們無法登錄您。 我們收到了一個錯誤的請求。」 – Priyaa

+0

附加技術信息: 相關ID:897e130f-5cf9-499c-9243-d095456a8ea3 時間戳:2017年6月13日17:19:27Z AADSTS50001:命名的應用https://scheduler.teams.microsoft.com/是未在名爲skypetestsyt0mngc.onmicrosoft.com的租戶中找到。如果應用程序尚未由租戶的管理員安裝或由租戶中的任何用戶同意,則可能會發生這種情況。您可能已將驗證請求發送給錯誤的承租人。 – Priyaa

+0

URl試過了:https://login.microsoftonline.com/common/oauth2/authorize? CLIENT_ID = f5986c14-cdb9-4e68-a89e-119d15b33afc &RESPONSE_TYPE =代碼 &REDIRECT_URI =甕:IETF:WG:OAuth的:2.0:OOB &response_mode =查詢 &資源= HTTPS%3A%2F%2Fscheduler.teams.microsoft.com %2F &state = 12345 &prompt = admin_consent – Priyaa

相關問題