Microsoft Foundry

Microsoft Foundry(2025 年 11 月之前称为 Azure AI Foundry)在使用服务时提供两种身份验证方式,包括 LLM 推理:基于密钥的身份验证和 Entra ID 身份验证。虽然基于密钥的身份验证更容易使用,但我想在这里分享使用 Entra ID 身份验证的优势,以及如何开始使用它的分步说明!

Entra ID 身份验证的优势

基于密钥的身份验证快速简单……只需从 Foundry 门户获取 API 密钥,将其作为 header 插入 api-key 名称下,就可以开始使用了!然而,由于其简单性,基于密钥的身份验证也存在一些限制。主要限制之一是安全性。虽然基于密钥的身份验证很简单,但它是"全有或全无"的访问方式——任何拥有该密钥的人都可以执行资源允许的任何操作。

通过 Entra ID 身份验证,我们可以使用 Microsoft Azure 的基于角色的访问控制(RBAC);这意味着可以为租户内的用户或授权应用程序分配特定角色,遵循最小权限原则。还可以使用条件访问来强制执行要求多因素身份验证、合规设备甚至特定 IP 范围的策略,然后才能访问 AI 模型。

如何在 Foundry 中使用 Entra ID 身份验证

那么我们究竟如何开始通过 Entra ID 身份验证使用 Microsoft Foundry 服务呢?如上所述,它不像基于密钥的身份验证那么简单,但我会在下面尽力通过截图来描述!注意:虽然我会向你展示如何使用"原始"基于 HTTP 的 API 调用来完成此操作,但你可能会找到一些 SDK 库,这些库可以用你选择的编程语言为你简化其中的一些过程。

步骤 1:注册你的应用程序(服务主体)

我们向 Foundry 服务发出的所有请求都将通过服务主体进行——这是在我们租户内注册的应用程序。

访问 Azure 门户 portal.azure.com 并导航到 Microsoft Entra ID 服务。

导航到 Microsoft Entra ID

接下来,导航到"应用注册"。这将是我们声明新应用注册(服务主体)的地方。

应用注册

点击"+ 新注册",这将引导你完成有关应用注册的一些问题。为其提供一个唯一的名称,并为支持的帐户类型选择"仅此组织目录中的帐户"(第一个选项)。将"重定向 URI"部分留空。

新注册

创建新的应用注册后,有三个详细信息需要注意:应用程序(客户端)ID、目录(租户)ID 和客户端密钥。出于隐私考虑,我把我的涂黑了,但请在主页面上记下应用程序 ID 和目录 ID!

应用注册详细信息

接下来,我们需要为此应用注册创建一个客户端密钥。在左侧导航中,点击"证书和密钥",然后点击"客户端密钥",然后点击"新客户端密钥"。

证书和密钥

右侧会出现一个浮出窗格。为你的密钥提供描述,然后设置到期日期。注意:当密钥到期时,你必须更新应用注册和后续服务的密钥。

新客户端密钥

创建密钥后,它将在下面的密钥列表中列出。值就是我们想要的!点击密钥值旁边的复制按钮来复制它!

客户端密钥值

太好了!现在我们有了从应用注册中需要的三个值,可以进入下一步了!这些值是…

• 你的目录(租户)ID • 你的应用注册的应用程序(客户端)ID • 你的应用注册的客户端密钥(值)

我们现在准备进入步骤 2!

步骤 2:授予服务主体访问 Foundry 的权限

如前所述,Entra ID 身份验证使用基于角色的访问控制(RBAC)和最小权限原则。自然,该应用注册(新创建的)不会自动获得使用我们 Azure 租户中任何内容的权限!相反,我们作为管理员必须向该应用注册授予特定权限。在这种情况下,我们最想授予它使用权限的是 Foundry!

要授予应用注册 Foundry 权限,请导航到你的 Foundry 部署。

Foundry 部署

你将看到 Foundry 实例的列表。点击你希望授予应用注册访问权限的实例(你可能只有一个)。

Foundry 实例列表

然后,在左侧导航窗格中选择"访问控制(IAM)"。点击"+ 添加",然后点击"添加角色分配"。

访问控制 IAM

这将打开一个页面,其中包含我们可以授予租户内各种用户或应用程序的各种角色(权限)的长列表。我们今天要寻找的权限,即授予在此 Foundry 实例中使用模型(称为"推理")的能力的权限,称为认知服务用户!

搜索"Cognitive Services",你应该会看到它出现在列表中。选择它,然后按"下一步"。

认知服务用户

下一页将询问你想将此权限授予谁(或什么)。我们想将它授予"用户、组或服务主体",因此在"分配访问权限给"切换下选择该选项。然后点击"+ 选择成员"以打开右侧的浮出窗格,然后搜索你在步骤 #1 中创建的应用注册!选择它,然后按底部的"选择"。

选择成员

添加应用注册后,点击底部的"查看 + 分配"。

查看和分配

然后再次点击它以将其分配给你的应用注册。恭喜!该应用注册现在有权使用该 Foundry 资源。我们现在准备进入下一步。

步骤 3:获取 Entra ID 访问令牌

在使用 Entra ID 时,我们首先调用 Entra ID 服务,请求访问 Azure 租户中的资源(在本例中为 Foundry)。所以这是我们的下一个目标——调用 Entra ID 并说"嗨,是我,你的应用注册……我现在可以使用 Foundry 吗?"。正式的做法是从 Entra ID 请求访问令牌。这个访问令牌将在所有未来对 Foundry 的调用中用作我们有访问权限的"证明"!

以下步骤包括 API 调用,我将在 Bruno(类似于 Postman)中展示。

我们将向如下 URL 发出 POST 请求:

https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/token

插入你在步骤 1 中收集的目录(租户)ID!

然后,我们将在 body 中提供各种信息,Form URL Encoded:

• 应用程序(客户端)ID(来自步骤 1!) • 客户端密钥值(来自步骤 1!) • 作用域(我们指定"我现在只想使用 Foundry") • 授权类型(我们说"我请求可以在未来请求中使用的凭据")

你的请求将如下所示:

POST 请求示例

因此,你的 POST 请求 body 将包含以下属性:

client_id — 你的应用注册的应用程序(客户端)ID • client_secret — 你的应用注册的密钥(值) • grant_type — “client_credentials” • scope — “https://cognitiveservices.azure.com/.default"

确保你将目录(租户)ID 插入 URL 中,并将 body 格式配置为 Form URL Encoded。

如果一切成功,你可以在右侧看到,Entra ID 服务将返回 200 OK 并给我们一个 access_token 值。这就是我们想要的值!这是使用 Foundry 服务的权限(至少在一段时间内……它会过期!)!记下该 access_token 值(在我的示例中以 eyJ0eXAi... 开头)!

步骤 4:使用 Foundry 服务

有了那个 access_token,我们现在终于准备好开始使用 Foundry 服务了!在我们深入之前,请注意我们获得的 access_token 确实会过期。它通常持续大约一个小时,然后你必须再次重复步骤 #3 以请求一个新的。

在下面的示例中,假设我在 Foundry 实例中部署了 gpt-5-mini。如果你不知道如何执行此操作,请参阅此处首先部署一个模型,然后可以在后续步骤中使用。

现在你所要做的就是在所有未来对 Foundry 服务的 API 调用中提供在步骤 3 中收集的 access_token 作为 Bearer Token!如果你在这里,你可能已经知道这些 API 调用是什么样子(以及如何将其作为 Bearer Token 提供),但为了清楚起见,我也在下面提供示例。😄

在下面的示例中,我使用 OpenAI 的 responses API 调用 Foundry 服务:

POST https://ai-testaistudio030597089470.openai.azure.com/openai/v1/responses
Content-Type: application/json
Authorization: Bearer eyJ0eXAi...

{
    "model": "gpt-5-mini",
    "input":
    [
        {
            "role": "user",
            "content": "Hello! Why is the sky blue?"
        }
    ]
}

在上面的示例中,确保你提供整个访问令牌作为 bearer token(为了简洁起见,我截断了我的)。

在 Bruno(类似于 Postman)中查看,我在"Auth"选项卡下提供了 access_token 作为 Bearer Token(它知道将其作为 header 包含在 bearer token 格式中):

Bruno Auth 选项卡

然后相应地填写 POST 请求的其余部分:

Bruno POST 请求

恭喜!你现在正在使用 Entra ID 身份验证使用 Foundry 服务!

总结

这篇文章为 Microsoft Foundry(以前称为 Azure AI Foundry)中从基于密钥的身份验证过渡到 Entra ID 身份验证提供了技术演练。它强调了向更安全、企业级 AI 服务身份管理的转变。

工作流程一览:

  1. 注册服务主体(应用)
  2. 为服务主体分配权限
  3. 请求并获取访问令牌
  4. 使用该令牌使用 Foundry 服务!

现在你已经准备好通过 Entra ID 进行身份验证来使用 Foundry,这是一种比使用静态 API 密钥更安全的方法。虽然密钥可能很容易泄露、硬编码或共享,但 Entra ID 依赖于自动过期的短期访问令牌,大大减少了攻击者在令牌被拦截时的机会窗口。

原文链接:How to use Microsoft Foundry via Entra ID Authentication (with Step-by-Step Screenshots)