你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

配置凭据管理器 - Microsoft Graph API

适用于:所有 API 管理层级

本文指导你完成在 Azure API 管理中创建与 Microsoft 图形 API 的 托管连接 所需的步骤。 本示例使用授权代码授予类型。

你将学会如何:

  • 创建 Microsoft Entra 应用程序
  • 在 API 管理中创建和配置凭据提供程序
  • 配置连接
  • 在 API 管理中创建Microsoft图形 API 并配置策略
  • 在 API 管理中测试Microsoft图形 API

先决条件

步骤 1:创建Microsoft Entra 应用程序

为 API 创建Microsoft Entra 应用程序,并为要调用的请求授予相应的权限。

  1. 使用租户中具有足够权限的帐户登录到 Azure 门户

  2. 搜索并选择 Microsoft Entra ID

  3. 在边栏菜单上的“ 管理 ”下,选择 “应用注册”,然后选择“ + 新建注册”。

  4. “注册应用程序 ”页上,输入应用程序注册设置:

    1. “名称”中,为应用输入有意义的名称,例如 MicrosoftGraphAuth

    2. 支持的帐户类型中,选择适合你的情形的选项,例如,仅限此组织目录中的帐户(单租户)。

    3. 重定向 URI 设置为 Web,然后输入 https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>,替换要在其中配置凭据提供程序的 API 管理服务的名称。

    4. 选择“注册”。

      在门户中创建Microsoft Entra 应用注册的屏幕截图。

  5. 在边栏菜单上,选择 API 权限,然后选择“ + 添加权限”。 在门户中添加 API 权限的屏幕截图。

    1. 选择 Microsoft Graph,然后选择 “委派权限”。

      注释

      确保已添加类型为委托的权限User.Read

    2. 键入 “团队”,展开 “团队 ”选项,然后选择 “Team.ReadBasic.All”。 选择“添加权限”。
    3. 接下来, 为默认目录选择“授予管理员许可”。 权限状态更改为“已为默认目录授予”。
  6. 在边栏菜单上,选择“ 概述”。 在 “概述 ”页上,找到 应用程序(客户端)ID 值并记录它以供步骤 2 使用。

  7. 在边栏菜单上,选择 “证书和机密”,然后选择“ + 新建客户端密码”。 屏幕截图显示如何在门户中创建应用机密。

    1. 输入“说明”
    2. “过期”选择一个选项。
    3. 选择 并添加
    4. 在离开页面之前复制客户端密码 的值 。 在步骤 2 中需要用到它。

步骤 2:在 API 管理中配置凭据提供程序

  1. 转到 API 管理实例。

  2. 在边栏菜单上的 API 下,选择 “凭据管理器”,然后选择“ + 创建”。 在门户中创建 API 凭据的屏幕截图。

  3. “创建凭据提供程序 ”页上,输入以下设置,然后选择“ 创建” :

    设置 价值
    凭证提供者名称 所选的名称,例如 MicrosoftEntraID-01
    标识提供者 选择 Azure Active Directory v1
    授予类型 选择 授权代码
    授权 URL 对于 Microsoft Entra 标识提供者是可选的。 默认值为 https://login.microsoftonline.com
    客户端 ID 粘贴之前从应用注册复制的值
    客户端机密 粘贴之前从应用注册复制的值
    资源 URL https://graph.microsoft.com
    租户 ID 对于 Microsoft Entra 标识提供者是可选的。 默认值为 Common
    范围 对于 Microsoft Entra 标识提供者是可选的。 从 Microsoft Entra 应用的 API 权限自动配置。
  4. 选择 创建

步骤 3:配置连接

“连接 ”选项卡上,完成与提供程序的连接的步骤。

注释

配置连接时,API 管理默认设置一个 访问策略 ,该策略允许实例的系统分配的托管标识进行访问。 此访问权限足以用于此示例。 可以根据需要添加更多访问策略。

  1. 输入 连接名称,然后选择“ 保存”。
  2. 在“步骤 2: 登录到你的连接”(适用于授权代码授予类型)下,选择“登录”按钮。 按照那里规定的步骤授权访问,然后返回 API 管理。
  3. 步骤 3:确定谁有权访问此连接(访问策略),将列出托管标识成员。 根据方案,添加其他成员是可选的。
  4. 选择“Complete”(完成)。

新连接显示在连接列表中,并显示 “已连接”状态。 如果要为凭据提供程序创建另一个连接,请完成前面的步骤。

小窍门

使用门户可随时添加、更新或删除与凭据提供程序的连接。 有关详细信息,请参阅 “配置多个连接”。

注释

如果在此步骤后更新 Microsoft Graph 权限,则需要重复步骤 2 和步骤 3。

步骤 4:在 API 管理和配置策略中创建Microsoft图形 API

  1. 在边栏菜单上的 API 下,选择 API

  2. 选择 HTTP 并输入以下设置。 然后选择“创建”

    设置 价值
    显示名称 msgraph
    Web 服务 URL https://graph.microsoft.com/v1.0
    API URL 后缀 msgraph
  3. 导航到新创建的 API,然后选择 + 添加操作。 输入以下设置,然后选择“ 保存”。

    设置 价值
    显示名称 getprofile
    URL 用于 GET /我
  4. 按照前面的步骤再添加一个操作,其设置如下。

    设置 价值
    显示名称 getJoinedTeams
    URL 用于 GET /me/joinedTeams
  5. 选择“所有操作”。 在 “入站处理 ”部分中,选择 </> (代码编辑器)图标。

  6. 复制并粘贴以下代码片段。 用在前面步骤中配置的凭据提供程序和连接名称更新get-authorization-context策略,然后选择保存

    • 将凭据提供程序名称替换为 provider-id 的值
    • 将连接名称替换为 authorization-id 的值
    <policies>
        <inbound>
            <base />
            <get-authorization-context provider-id="MicrosoftEntraID-01" authorization-id="first-connection" context-variable-name="auth-context" identity-type="managed" ignore-error="false" />
           <set-header name="Authorization" exists-action="override">
               <value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
           </set-header>
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

前面的策略定义由两个部分组成:

  • get-authorization-context 策略通过引用之前创建的凭据提供程序和连接来获取授权令牌。
  • set-header 策略通过提取的访问令牌生成 HTTP 标头。

步骤 5:测试 API

  1. 测试选项卡上,选择一个已配置的操作。

  2. 选择发送

    在门户中测试图形 API 的屏幕截图。

    成功的响应从 Microsoft Graph 返回用户数据。