小编Phi*_*Mar的帖子

使用应用程序令牌通过REST API调用Microsoft Graph

我正在尝试使用REST API调用Microsoft Graph,但遇到了一些问题。我的应用程序最终将是部署到Azure的Web应用程序,我需要在没有登录用户的情况下通过REST调用Graph。

在尝试调试时,我尝试制作了最简单的应用程序。该应用程序正试图使用​​Graph从Azure Active Directory中读取用户的配置文件。

我在AAD中注册了我的应用,因此我有一个租户,客户ID和客户密码。至此,我已经在AAD和Graph API下授予了所有许可(出于测试目的)。我可以从AAD获得令牌,但是当我使用该令牌调用Graph API时,我会获得401 - Unauthorizedwith Access Token Validation Error

我已经搜索了此错误,却没有发现任何适用的方法。

编辑:添加权限后,我还向我的应用程序授予了权限。

我已经从各种样本中抓取了一些片段,以尝试使其正常工作。这是代码:

var tenant = "tenant ID";
var clientID = "app ID";

// I've tried graph.microsoft.com and graph.microsoft.com/.default
var resource = "https://graph.microsoft.com/user.read.all";
var secret = "client secret";

string token;

using(var webClient = new WebClient())
{
    var requestParameters = new NameValueCollection();
    requestParameters.Add("scope", resource);
    requestParameters.Add("client_id", clientID);
    requestParameters.Add("grant_type", "client_credentials");
    requestParameters.Add("client_secret", secret);

    var url = $"https://login.microsoftonline.com/{tenant}/oauth2/token";
    var responseBytes = await webClient.UploadValuesTaskAsync(url, "POST", requestParameters);
    var responseBody …
Run Code Online (Sandbox Code Playgroud)

azure-active-directory microsoft-graph

2
推荐指数
2
解决办法
1024
查看次数