你当前正在访问 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
先决条件
访问你有权在其中创建应用注册并授予对应用权限的管理员同意的 Microsoft Entra 租户。 了解详细信息
如果要创建自己的开发人员租户,可以注册 Microsoft 365 开发人员计划。
正在运行的 API 管理实例。 根据需要创建一个 Azure API 管理实例。
在 API 管理实例中为 API 管理启用系统分配的托管标识。
步骤 1:创建 Microsoft Entra 应用程序
为 API 创建 Microsoft Entra 应用程序,并为其授予要调用的请求的适当权限。
使用租户中具有足够权限的帐户登录到 Azure 门户。
在“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 管理实例。
在左侧菜单中,选择“凭据管理器”,然后选择“+ 创建”。
在“创建凭据提供程序”页中输入以下设置,然后选择“创建”:
设置 值 凭据提供程序名称 你选择的名称,例如 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 管理默认设置访问策略,其允许实例的系统分配的托管标识进行访问。 此访问权限对于本示例来说已足够。 可以根据需要添加其他访问策略。
- 输入连接名称,然后选择“保存”。
- 在“步骤 2:登录到连接”中(对于授权代码授予类型),选择用于登录到凭据提供程序的链接。 完成那里的步骤以授权访问,然后返回 API 管理。
- 在“步骤 3:确定谁有权访问此连接(访问策略)”,将列出托管标识成员。 添加其他成员的操作是可选的,具体取决于你的方案。
- 选择完成。
新连接显示在连接中,并显示“已连接”状态。 如果要为凭据提供程序创建另一个连接,请完成前面的步骤。
提示
使用门户可随时添加、更新或删除与凭据提供程序的连接。 有关详细信息,请参阅配置多个连接。
注意
如果在此步骤后更新 Microsoft Graph 权限,则必须重复步骤 2 和步骤 3。
步骤 4:在 API 管理中创建 Microsoft Graph API 并配置策略
登录到门户,并转到你的 API 管理实例。
在左侧菜单中,选择“API”>“+ 添加 API”。
选择“HTTP”并输入以下设置。 然后选择“创建”。
设置 “值” 显示名称 msgraph Web 服务 URL https://graph.microsoft.com/v1.0
API URL 后缀 msgraph 导航到新建的 API 并选择“添加操作”。 输入以下设置并选择“保存”。
设置 “值” 显示名称 getprofile GET 的 URL /me 按照上述步骤添加具有以下设置的另一个操作。
设置 “值” 显示名称 getJoinedTeams GET 的 URL /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 返回用户数据。