2014-12-05 124 views
1

我想创建一个应用程序来浏览Exchange上的我的联系人目录。
我已经设置了一切,我可以从我的应用程序请求授权。
我可以提出模态视图,输入登录信息,检索令牌,但是当我尝试授权与我创建它的同一帐户的应用程序,我得到这个消息:如果我尝试Azure图形API:授权多个租户的应用程序

The client <my app id> and resource <my app URI> identify the same application. 

授权另一个帐户,我收到此消息,而不是:

User account <an email> from external identity provider <a url> is not 
supported for application <my app id> 

如果我尝试登录在Graph Explorer Console或在Office 365 OAuth Sandbox,他们很好地工作的第二个地址,但不能与第一个。

我真的很迷惑。我觉得我已经搞乱了一些配置选项,但我不太明白哪一个。

+0

关于#1,你能否请你检查你的应用程序的'App ID'是否通过'resource'查询字符串参数并且对你的租户URL(而不是通用URL)进行验证/授权?我遇到了同样的问题,我通过传递'https:// graph.windows.net'来解决资源问题,而不是'App ID'。 – 2014-12-05 18:56:51

+0

我正在按照[本示例](http://msdn.microsoft.com/en-us/library/azure/dn645542.aspx) – pasine 2014-12-05 19:01:08

+0

中所述传递'App ID URI',我也做了同样的事情:) 。试试这个项目:https://github.com/AzureADSamples/WebApp-MultiTenant-OpenIdConnect-DotNet并查看发送到Azure AD的登录URL。续。 – 2014-12-05 19:04:23

回答

3

对于#1,在对租户URL进行身份验证时,请不要将querystring参数的App ID传递给您的应用程序。我遇到了完全相同的问题。

然后我从GitHub跑WebApp-MultiTenant-OpenIdConnect-DotNet并记下它创建的登录网址和我用下面的:

var signInUrl = String.Format(
       "https://login.windows.net/{0}/oauth2/authorize?response_mode=form_post&response_type=code+id_token&scope=openid+profile&client_id={1}&resource={2}&redirect_uri={3}&state={4}&nonce={5}", 
       Uri.EscapeDataString(tenantId), 
       Uri.EscapeDataString(clientId), 
       Uri.EscapeDataString("https://graph.windows.net"), 
       Uri.EscapeDataString(redirectUri), 
       Uri.EscapeDataString(state), 
       string.Format("{0}{1}", DateTime.UtcNow.Ticks, Guid.NewGuid().Stringify()) 
       ); 

基本上我用https://graph.windows.net代替App ID和神奇的事情开始工作:)。

你可以尝试的另一件事(我没有尝试过)是对通用端点https://login.windows.net/common/oauth2/authorize进行身份验证,并为resource查询字符串提供App ID

+0

我能够获得令牌,但是我对Graph API的所有请求总是收到401错误:任何其他提示?我正在使用JavaScript的REST API。 – pasine 2014-12-06 00:08:43

+0

我遵循[文档](http://msdn.microsoft.com/en-us/library/azure/dn645542.aspx)中“使用访问令牌访问资源”部分中指定的内容,但我不断收到401错误。我也尝试用REST客户端来测试所有的东西,但是我在请求URL中得到'无效的域名。 – pasine 2014-12-06 01:29:53

+0

我真的会推荐在Github上看到样本。 – 2014-12-06 12:41:16