你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于:所有 API 管理层级
本文指导你完成在 Azure API 管理中创建与 Microsoft 图形 API 的 托管连接 所需的步骤。 本示例使用授权代码授予类型。
你将学会如何:
- 创建 Microsoft Entra 应用程序
- 在 API 管理中创建和配置凭据提供程序
- 配置连接
- 在 API 管理中创建Microsoft图形 API 并配置策略
- 在 API 管理中测试Microsoft图形 API
先决条件
- 访问你有权在其中创建应用注册并授予对应用权限的管理员同意的 Microsoft Entra 租户。 若要了解详细信息,请参阅 “限制谁可以创建应用程序”。 - 如果要创建自己的开发人员租户,可以注册 Microsoft 365 开发人员计划。 
- 正在运行的 API 管理实例。 如果没有 Azure API 管理实例,请参阅“创建新的 Azure API 管理实例”。 
- 在 API 管理实例中启用 系统分配的托管标识 。 
步骤 1:创建Microsoft Entra 应用程序
为 API 创建Microsoft Entra 应用程序,并为要调用的请求授予相应的权限。
- 使用租户中具有足够权限的帐户登录到 Azure 门户 。 
- 搜索并选择 Microsoft Entra ID。 
- 在边栏菜单上的“ 管理 ”下,选择 “应用注册”,然后选择“ + 新建注册”。 
- 在 “注册应用程序 ”页上,输入应用程序注册设置: - 在 “名称”中,为应用输入有意义的名称,例如 MicrosoftGraphAuth。 
- 在支持的帐户类型中,选择适合你的情形的选项,例如,仅限此组织目录中的帐户(单租户)。 
- 将 重定向 URI 设置为 Web,然后输入 - https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>,替换要在其中配置凭据提供程序的 API 管理服务的名称。
- 选择“注册”。   
 
- 在边栏菜单上,选择 API 权限,然后选择“ + 添加权限”。   - 选择 Microsoft Graph,然后选择 “委派权限”。
注释 确保已添加类型为委托的权限User.Read。 
- 键入 “团队”,展开 “团队 ”选项,然后选择 “Team.ReadBasic.All”。 选择“添加权限”。
- 接下来, 为默认目录选择“授予管理员许可”。 权限状态更改为“已为默认目录授予”。
 
- 选择 Microsoft Graph,然后选择 “委派权限”。
- 在边栏菜单上,选择“ 概述”。 在 “概述 ”页上,找到 应用程序(客户端)ID 值并记录它以供步骤 2 使用。 
- 在边栏菜单上,选择 “证书和机密”,然后选择“ + 新建客户端密码”。   - 输入“说明”。
- 为 “过期”选择一个选项。
- 选择 并添加。
- 在离开页面之前复制客户端密码 的值 。 在步骤 2 中需要用到它。
 
步骤 2:在 API 管理中配置凭据提供程序
- 转到 API 管理实例。 
- 在边栏菜单上的 API 下,选择 “凭据管理器”,然后选择“ + 创建”。   
- 在 “创建凭据提供程序 ”页上,输入以下设置,然后选择“ 创建” : - 设置 - 价值 - 凭证提供者名称 - 所选的名称,例如 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 权限自动配置。 
- 选择 创建。 
步骤 3:配置连接
在 “连接 ”选项卡上,完成与提供程序的连接的步骤。
注释
配置连接时,API 管理默认设置一个 访问策略 ,该策略允许实例的系统分配的托管标识进行访问。 此访问权限足以用于此示例。 可以根据需要添加更多访问策略。
- 输入 连接名称,然后选择“ 保存”。
- 在“步骤 2: 登录到你的连接”(适用于授权代码授予类型)下,选择“登录”按钮。 按照那里规定的步骤授权访问,然后返回 API 管理。
- 在 步骤 3:确定谁有权访问此连接(访问策略),将列出托管标识成员。 根据方案,添加其他成员是可选的。
- 选择“Complete”(完成)。
新连接显示在连接列表中,并显示 “已连接”状态。 如果要为凭据提供程序创建另一个连接,请完成前面的步骤。
小窍门
使用门户可随时添加、更新或删除与凭据提供程序的连接。 有关详细信息,请参阅 “配置多个连接”。
注释
如果在此步骤后更新 Microsoft Graph 权限,则需要重复步骤 2 和步骤 3。
步骤 4:在 API 管理和配置策略中创建Microsoft图形 API
- 在边栏菜单上的 API 下,选择 API。 
- 选择 HTTP 并输入以下设置。 然后选择“创建”。 - 设置 - 价值 - 显示名称 - msgraph - Web 服务 URL - https://graph.microsoft.com/v1.0- API URL 后缀 - msgraph 
- 导航到新创建的 API,然后选择 + 添加操作。 输入以下设置,然后选择“ 保存”。 - 设置 - 价值 - 显示名称 - getprofile - URL 用于 GET - /我 
- 按照前面的步骤再添加一个操作,其设置如下。 - 设置 - 价值 - 显示名称 - getJoinedTeams - URL 用于 GET - /me/joinedTeams 
- 选择“所有操作”。 在 “入站处理 ”部分中,选择 </> (代码编辑器)图标。 
- 复制并粘贴以下代码片段。 用在前面步骤中配置的凭据提供程序和连接名称更新 - 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
- 在测试选项卡上,选择一个已配置的操作。 
- 选择发送。   - 成功的响应从 Microsoft Graph 返回用户数据。