c# - Microsoft Graph API:出现错误“Authorization_IdentityNotFound”
问题描述
使用我的 outlook.com 帐户登录到 portal.azure.com 并创建了一个新应用程序。Microsoft 提供了一个示例应用程序 (daemon_console) 用于快速实验(在快速入门指南中),我按照为示例应用程序提供的步骤操作,该应用程序自动获取您生成的应用程序 ID 和客户端密码并更新配置 JSON 文件 (appsettings.json)有了这个信息。我在这些步骤之后下载了代码,但是当我运行示例应用程序时,它会抛出错误“Authorization_IdentityNotFound”。
看起来它能够获取令牌,但以下代码抛出错误:
var httpClient = new HttpClient();
var apiCaller = new ProtectedApiCallHelper(httpClient);
await apiCaller.CallWebApiAndProcessResultASync($"{config.ApiUrl}v1.0/users", result.AccessToken, Display);
微软页面有两种方式获得管理员同意的步骤:
- 如果您是全局管理员,请转到 API 权限页面,为 Enter_the_Tenant_Name_Here 选择授予管理员同意
- 标准用户 如果您是租户的标准用户,则需要请求全局管理员为您的应用程序授予管理员许可。为此,请将以下 URL 提供给您的管理员: https ://login.microsoftonline.com/common/adminconsent?client_id=my apps client id
我已经尝试了这两种选择。使用第一个选项,我可以授予所需的权限。但问题仍然存在。
当我转到建议的 URL 时,使用第二个选项失败并出现错误:“AADSTS500113:没有为应用程序注册回复地址。”
我认为这应该是一个简单的过程,但不知何故,该应用程序无法执行并因错误而失败:
"code": "Authorization_IdentityNotFound",
"message": "The identity of the calling application could not be established.",
如果有人尝试过这些步骤并设法解决了这个问题,请告诉我。
请注意,我可以使用我的 Outlook.com 帐户从图形资源管理器运行“ https://graph.microsoft.com/v1.0/users ”,它运行良好。
解决方案
我对其进行了测试,起初我遇到了同样的问题,这是因为 appsettings.json 中的常见问题
replace the "Tenant": "common"
with "Tenant": "your Tenant ID",
您可以从您的应用注册目录(租户)ID 的概览页面获取租户 ID。完成此操作后,请确保右键单击该项目并单击重建。因为如果我只是进行正常运行,它会缓存它并且不会从常见更新它。
推荐阅读
- javascript - 无法提交表单 - ReactJs、Node.js
- ios - 如何使用可编码打印来自 alamofire 响应的结果
- authentication - 如何以及在哪里可以创建 getUserById 函数?
- powershell - Foreach 每个带有参数的循环启动一个新的 powershell 实例?
- regex - 查找公式组的“真实”公式
- sql - 如何使用 SQL API 根据值数组中元素的值过滤 Cosmos DB 数据
- java - How to store values from a list to arraylist in selenium
- ios - 尝试使用 AWSAppSync swift 4 时,SQLite.swift 中的“'UnsafeRawBufferPointer' 不能转换为 'UnsafePointer<_>'”
- c# - 无法下载文件。给予例外
- android - 如何删除数据库中的数据?