Microsoft Graph API:获取错误 "Authorization_IdentityNotFound"
Microsoft Graph API: Getting error "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);
Microsoft 页面有两种方式获得管理员同意的步骤:
- 如果您是全局管理员,请转到 API 权限页面 select 授予管理员同意 Enter_the_Tenant_Name_Here
- 标准用户
如果你是租户的标准用户,则需要请求全局管理员为你的应用程序授予管理员许可。为此,请将以下 URL 提供给您的管理员:
https://login.microsoftonline.com/common/adminconsent?client_id=my 应用客户端 ID
这两个选项我都试过了。使用第一个选项,我可以授予所需的权限。但问题仍然存在。
使用第二个选项,当我转到建议的 URL 时,它失败并出现错误:
"AADSTS500113: No reply address is registered for the application."
我认为这应该是一个简单的过程,但不知何故应用程序无法执行并因错误而失败:
"code": "Authorization_IdentityNotFound",
"message": "The identity of the calling application could not be established.",
如果有人尝试过这些步骤并成功解决了这个问题,请告诉我。
请注意,我可以使用我的 outlook.com 帐户从 Graph Explorer 运行“https://graph.microsoft.com/v1.0/users”,它工作得很好。
我测试了它,起初我 运行 遇到了同样的问题,
这是因为在 appsettings.json
中很常见
replace the "Tenant": "common"
with "Tenant": "your Tenant ID",
您可以从应用注册目录(租户)ID 的概览页面获取租户ID。执行此操作后,请确保右键单击该项目并单击重建。因为如果我只是做一个普通的 运行 它会缓存它并且不会从 common.
更新它
我使用 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);
Microsoft 页面有两种方式获得管理员同意的步骤:
- 如果您是全局管理员,请转到 API 权限页面 select 授予管理员同意 Enter_the_Tenant_Name_Here
- 标准用户 如果你是租户的标准用户,则需要请求全局管理员为你的应用程序授予管理员许可。为此,请将以下 URL 提供给您的管理员: https://login.microsoftonline.com/common/adminconsent?client_id=my 应用客户端 ID
这两个选项我都试过了。使用第一个选项,我可以授予所需的权限。但问题仍然存在。
使用第二个选项,当我转到建议的 URL 时,它失败并出现错误: "AADSTS500113: No reply address is registered for the application."
我认为这应该是一个简单的过程,但不知何故应用程序无法执行并因错误而失败:
"code": "Authorization_IdentityNotFound",
"message": "The identity of the calling application could not be established.",
如果有人尝试过这些步骤并成功解决了这个问题,请告诉我。
请注意,我可以使用我的 outlook.com 帐户从 Graph Explorer 运行“https://graph.microsoft.com/v1.0/users”,它工作得很好。
我测试了它,起初我 运行 遇到了同样的问题, 这是因为在 appsettings.json
中很常见replace the "Tenant": "common"
with "Tenant": "your Tenant ID",
您可以从应用注册目录(租户)ID 的概览页面获取租户ID。执行此操作后,请确保右键单击该项目并单击重建。因为如果我只是做一个普通的 运行 它会缓存它并且不会从 common.
更新它