首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure AD身份验证呼叫Office 365和Graph

Azure AD身份验证呼叫Office 365和Graph
EN

Stack Overflow用户
提问于 2017-07-18 18:19:16
回答 1查看 688关注 0票数 1

我使用VS 2015创建了一个示例MVC应用程序,并使用Azure AD Auth向导。当我启动这个web应用程序时,它要求我用Azure注册应用程序(第一次只注册),然后注册用户AD /密码。我已经输入Office 365/Azure AD帐户并成功登录。一切都很好,在右上角,我可以看到你好“我的名字”。

现在,我尝试使用RestSharp向Office 365发出REST电话。它给了我403 error (access denied)

当我尝试使用图形api url https://graph.windows.net/testname.com/groups?api-version=1.6时,我得到的是错误unauthorized access

下面是我使用图形API调用的测试代码:

代码语言:javascript
复制
 string url = "https://graph.windows.net/testname.com/groups?api-version=1.6";
            var client = new RestClient(url);
            client.ClearHandlers();
            var jsonDeserializer = new JsonDeserializer();
            client.AddHandler("application/json", jsonDeserializer);
            var request = new RestRequest(Method.GET);
            var queryResult = client.Execute(request);

对于Office365Call,我使用与O365 REST url相同的代码。

为什么在这两种情况下我都被拒绝访问,如果我的应用程序已经针对Azure进行了身份验证,这是基本的身份验证。而且,Request.IsAuthenticated总是正确的。

一个标识提供者(AAD)不是用于Azure、Office 365和相关资源吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-18 23:22:43

您的应用程序可能没有配置为调用图形的/groups端点。虽然最终用户是经过身份验证的,并且您已经获得了Azure AD图(graph.windows.net)的令牌,但是这个访问令牌需要有一定的权限才能调用端点。

要配置这些图形权限,您可以转到Azure门户,选择Active,然后是应用程序注册,最后是必需的权限。您调用的资源是Windows,然后可以查看要调用的范围列表。

我推荐的另一个很好的资源是Azure AD图资源管理器。这可以帮助理解图形可以提供的数据类型。

编辑:结账备注以获得答案。OP使用了OpenID连接中间件(OWIN),需要帮助获取资源的访问令牌。要做到这一点,必须使用OWIN + ADAL的组合。OWIN获得一个auth代码,ADAL可以将这个auth代码交换为一个访问令牌。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45174325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档