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

配置凭据管理器 - Microsoft Graph API

适用于:所有 API 管理层级

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

你将学习如何执行以下操作:

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

先决条件

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

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

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

  2. 在“Azure 服务”下,搜索“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 凭据的屏幕截图。

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

    设置
    凭据提供程序名称 你选择的名称,例如 MicrosoftEntraID-01
    标识提供者 选择“Azure Active Directory v1”
    授权类型 选择“授权代码”
    授权 URL 对于 Microsoft Entra 标识提供者是可选的。 默认值为 https://login.microsoftonline.com
    客户端 ID 粘贴前面从应用注册中复制的值
    客户端机密 粘贴前面从应用注册中复制的值
    资源 URL https://graph.microsoft.com
    租户 ID 对于 Microsoft Entra 标识提供者是可选的。 默认值为“逗号”
    作用域 对于 Microsoft Entra 标识提供者是可选的。 通过 Microsoft Entra 应用的 API 权限自动配置。

步骤 3:配置连接

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

注意

配置连接时,API 管理默认设置访问策略,其允许实例的系统分配的托管标识进行访问。 此访问权限对于本示例来说已足够。 可以根据需要添加其他访问策略。

  1. 输入连接名称,然后选择“保存”。
  2. 在“步骤 2:登录到连接”中(对于授权代码授予类型),选择用于登录到凭据提供程序的链接。 完成那里的步骤以授权访问,然后返回 API 管理。
  3. 在“步骤 3:确定谁有权访问此连接(访问策略)”,将列出托管标识成员。 添加其他成员的操作是可选的,具体取决于你的方案。
  4. 选择完成

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

提示

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

注意

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

步骤 4:在 API 管理中创建 Microsoft Graph API 并配置策略

  1. 登录到门户,并转到你的 API 管理实例。

  2. 在左侧菜单中,选择“API”>“+ 添加 API”。

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

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

    设置 “值”
    显示名称 getprofile
    GET 的 URL /me
  5. 按照上述步骤添加具有以下设置的另一个操作。

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

  7. 复制粘贴以下代码片段。 使用你在前面步骤中配置的凭据提供程序和连接的名称更新 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 返回用户数据。