2016-05-16 42 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发现所有租户和潜艇的方式。令人沮丧的是,似乎没有办法用你自己的应用程序来做到这一点。 –

相关问题