我面临的问题,而试图为一个驱动器访问生成令牌。因为我有要求,用户可以从那里获得所有的文件一个驱动器使用我的应用程序。
我尝试了以下代码,但遇到错误。
{"错误":"授权无效","错误描述":" AADSTS65001:用户或管理员未同意使用ID为的应用程序。请为此用户和资源发送交互式授权请求。\r\n跟踪ID:相关识别码:时间戳记:2022年11月24日15:56:04Z ","错误代码":[65001],"时间戳":" 2022年11月24日15:56:04Z ","跟踪标识":" 33a0dd6a-6984 - 4c0a-8f74 - 6fbcd9c54301 ","相关标识":" 265ca054-ab98 - 450c-8281 - 851ef6b0fdc3 ","子错误":"需要同意"}
Find my code that I am trying. public async Task GetTokenAsync(string tenant, string clientId, string clientSecret, string username, string password) { HttpResponseMessage resp; string token; using (var httpClient = new HttpClient()) { httpClient.DefaultRequestHeaders.Accept.Add( new ("application/x-www-form- urlencoded")); var req = new HttpRequestMessage(HttpMethod.Post, $"https://login.microsoftonline.com/{tenant}/oauth2/token/"); req.Content = new FormUrlEncodedContent(new Dictionary<string, string> { {"grant_type", "password"}, {"client_id", clientId}, {"client_secret", clientSecret}, {"resource", "https://graph.microsoft.com/"}, {"username", username}, {"password", password}
});
resp = await httpClient.SendAsync(req);
string content = await resp.Content.ReadAsStringAsync();
var jsonObj = System.Text.Json.JsonSerializer.Deserialize<dynamic>(content);
token = jsonObj["access_token"];
}
return token;
}
没有
1条答案
按热度按时间falq053o1#
我尝试在我的环境中重现相同的错误,但得到了如下相同的错误:
如果您没有同意管理员同意您授予的API权限,通常会发生此错误,如下所示:
为了解决该错误,我创建了Azure AD应用程序并授予管理员对API权限的同意:
为了生成访问令牌,我使用了以下参数:
我能够成功生成访问令牌,如下所示:
如果问题仍然存在,请尝试更新Azure企业应用程序中的以下设置,如下所示:
x1c4d 1x指令集
否则,您可以使用下面的“端点”、“以管理员身份登录”和“接受”授予管理员同意: