你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何在 Foundry 代理服务调用应用服务 OpenAPI 终结点时保护这些终结点。 在 Microsoft Foundry 中将应用服务应用添加为 OpenAPI 工具时,可以对其进行配置,以匿名方式调用 API,这更易于开发和测试。 但是,对于生产环境,应将 Microsoft Entra 身份验证与托管标识配合使用。 本指南逐步讲解如何配置托管标识身份验证,以便在 Microsoft Foundry 和应用之间实现基于令牌的安全通信。
先决条件
具有 OpenAPI 终结点的应用服务应用。 如果需要将 OpenAPI 功能添加到应用,请参阅以下教程之一:
Microsoft Foundry 项目,你将在其中将应用添加为 OpenAPI 工具。
查找 Microsoft Foundry 项目的托管身份 ID
需要Microsoft Foundry 项目的托管标识的对象 ID 和应用程序 ID 来配置应用服务身份验证。 创建时会自动为 Microsoft Foundry 项目创建系统分配的托管标识。 该标识是 Foundry 智能体服务用于与你的应用进行身份验证的标识。
在 Foundry 门户中,导航到您的项目并选择“概述”。
在右侧的 “项目详细信息 ”部分中,选择 资源组 旁边的链接,在 Azure 门户中打开资源组。
在资源组中,找到并选择Microsoft Foundry 项目资源。
在项目资源的左侧菜单中,选择 “资源管理>标识”。
在 “系统分配”下,复制 对象(主体)ID 的值供以后使用。
在 Azure 门户中,搜索并选择 Microsoft Entra ID。
在搜索框中,搜索复制的对象 ID,并在搜索结果中选择它。
在 “概述 ”页上,复制 应用程序 ID 的值。
请注意, 对象 ID 与系统分配的托管标识中显示的对象 ID 相同。 需要应用程序 ID 和对象 ID 才能配置应用服务身份验证。
为应用配置Microsoft Entra 身份验证
在 Azure 门户中,导航到应用服务应用。
在应用的左侧菜单中,选择“设置”>“身份验证”,然后选择“添加标识提供者”。
在 “添加标识提供者 ”页上,选择 Microsoft 作为 标识提供者 创建新的应用注册。
在 “其他检查”下,对于 客户端应用程序要求,请选择 “允许来自特定客户端应用程序的请求”。
选择铅笔图标,添加你在查找 Microsoft Foundry 项目的托管标识 ID 步骤中复制的应用程序 ID。
对于 标识要求,请选择 “允许来自特定标识的请求”。
选择铅笔图标,添加你在查找 Microsoft Foundry 项目的托管标识 ID 步骤中复制的对象 ID。
对于 租户要求 ,请接受默认值。 若未选择,请确保选择创建 Microsoft Foundry 项目(或其标识)所在的租户。
对于 未经身份验证的请求,请选择 “HTTP 401 未授权”:建议用于 API。
选择 “添加” 以创建标识提供者。
更新应用注册应用程序 ID URI
启用身份验证后,需要更新应用注册的应用程序 ID URI 以匹配应用服务应用的 URL。
Microsoft提供程序配置完成后,在 身份提供者 列中选择它以打开应用注册页面。
在左侧菜单中,选择“ 管理>公开 API”。
在 应用程序 ID URI 旁边,选择“ 编辑”。
将值更改为应用服务应用的 URL,格式如下:
https://<suffix>.azurewebsites.net可以在默认域中的“概述”页上找到应用的主机名。
选择“保存”。
警告
如果删除应用服务应用,还必须删除应用注册并清理引用应用程序 ID URI 的任何身份验证资源。 未能这样做会造成安全漏洞:如果其他人创建具有相同 URL 的应用,他们可能会获得对信任孤立应用注册的资源的未经授权的访问。 解除应用授权时,始终删除应用注册及其关联权限。
在 Microsoft Foundry 中配置 OpenAPI 工具
注释
本部分假定你已完成 先决条件 部分中的其中一篇教程,在该部分中,你已使用匿名身份验证将应用添加为 Microsoft Foundry 中的 OpenAPI 工具。 现在,您需要更新该工具以使用托管标识进行身份验证。
返回 Foundry 门户,选择你的代理。
找到 OpenAPI 工具,然后选择它进行编辑。
在 “为此工具定义架构” 页中:
粘贴 OpenAPI 架构。 有关详细信息,请参阅 如何将 OpenAPI 与 Foundry 代理服务配合使用。
对于 身份验证方法,请选择 托管身份。
对于 受众,请输入您应用服务应用的 URL。 此 URL 必须与前面配置 的应用程序 ID URI 匹配。
小窍门
Foundry 代理服务使用系统分配的托管标识对应用进行身份验证。 由于你在应用身份验证提供程序的配置中,将身份的客户端 ID 添加为允许的客户端应用程序和允许的身份,因此智能体服务被授权调用应用的 API。
查看并保存该工具。
测试代理
在 Foundry 门户中,选择你的代理并点击“在操场中试用”。
与代理聊天以测试 OpenAPI 终结点。 例如:
- 向我显示所有任务。
- 创建名为“购买杂货”的任务。
- 将该任务更新为“购买杂货和烹饪晚餐”。
如果正确配置了身份验证,代理会通过 OpenAPI 工具成功调用应用的 API。