首页 > 解决方案 > 使用客户端凭据的 Azure AD 服务到服务调用 - 共享密钥

问题描述

我有一个托管在云上的 API 和一个位于同一组织和同一网络但在我的本地计算机上的守护程序应用程序客户端。我已经两次和三次检查了设置,但仍然无法将它们相互连接。

所以为了看问题,我把它们分成了两个子问题。

  1. 将 Daemon App 连接到 Azure AD 以检索令牌,然后使用令牌访问 Microsoft Graph。检索令牌后出错。
Failed to call the Web Api: Forbidden
Content: {
  "error": {
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation.",
    "innerError": {
      "request-id": "2646f5f8-9c25-482d-a89f-f14ca6c06cf7",
      "date": "2019-07-22T01:13:30"
    }
  }

我使用此Azure 文档示例来产生上述错误。

客户端 API 权限

  1. 使用守护程序应用程序访问 API - 所以我从未接触过,因为我从未能够通过第 1 步。

关于如何解决此问题的任何想法。我错过了一些简单的东西吗?

标签: azureazure-active-directory

解决方案


Azure AD Graph APIMicrosoft Graph API不同。所以有两种方法可以让它工作。

1 . 使用 Microsoft 图形 API

您应该授予应用程序 microsoft graph api 权限。

在此处输入图像描述

2 . 使用 Azure AD 图形 API

您需要更新代码如下。

a. 将范围更改为https://graph.windows.net/.default

b.将 api 更改为GET https://graph.windows.net/myorganization/users?api-version=1.6

笔记:

我们强烈建议您使用 Microsoft Graph 而不是 Azure AD Graph API 来访问 Azure Active Directory 资源。


推荐阅读