你当前正在访问 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.0API 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 返回用户数据。