You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AKS部署的服务中实现应用级UAMI+FIC身份认证?

AKS中如何在应用层面实现UAMI + FIC的令牌请求?

术语说明

  • UAMI: 用户分配托管标识(User-assigned Managed Identity)
  • FIC: 联合身份凭据(Federated Identity Credentials)

UAMI + FIC的常规使用流程

  • 创建用户分配托管标识(UAMI)
  • 为该UAMI创建联合身份凭据(FIC)
  • 在目标Azure资源中配置允许该UAMI的访问权限
  • 在代码中调用Azure令牌提供程序获取访问令牌

我们之前通过客户端密钥从Entra ID应用请求令牌,现在正切换为UAMI + FIC的方案。在Azure Function App中,只需在门户的「标识」选项卡中指定要使用的UAMI即可完成配置,操作十分简便。

AKS中的应用层面实现方案

你想要的不依赖AKS基础设施层、仅在应用层面复用UAMI+FIC的方案是完全可行的,无需使用Pod工作负载标识,具体实现方式如下:

1. 利用Azure Identity SDK自动适配

在代码中使用Azure官方的Identity SDK(如.NET的Azure.Identity、Python的azure-identity等),SDK会自动识别环境中的标识配置。只需确保代码中没有硬编码客户端密钥,而是依赖SDK的默认令牌获取逻辑即可。

2. 通过环境变量指定UAMI

在AKS的Deployment配置中添加环境变量,指定目标UAMI的Client ID:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: your-app-deployment
spec:
  template:
    spec:
      containers:
      - name: your-app-container
        env:
        - name: AZURE_CLIENT_ID
          value: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # 替换为你的UAMI的Client ID

Azure Identity SDK会自动读取这个环境变量,使用对应的UAMI向Entra ID请求令牌,逻辑和Function App中指定标识完全一致——无需修改代码,仅通过配置环境变量即可完成标识绑定。

3. 验证FIC配置正确性

确保为UAMI创建的FIC满足以下条件:

  • 受众(Audience)设置为api://AzureADTokenExchange
  • 主体(Subject)设置为AKS Pod对应的服务账户标识:system:serviceaccount:<你的命名空间>:<服务账户名>
  • 颁发者(Issuer)设置为你的AKS集群的OIDC颁发者URL(可通过az aks show --name <集群名> --resource-group <资源组名> --query "oidcIssuerProfile.issuerUrl" -o tsv获取)

方案优势

  • 代码完全复用:同一套代码可直接部署到Function App、AKS、VM等不同基础设施,只需配置相同的AZURE_CLIENT_ID环境变量
  • 应用层面控制:标识绑定逻辑由应用SDK处理,不依赖AKS集群的基础设施配置
  • 对齐现有流程:和Function App的配置方式逻辑一致,降低切换成本

内容的提问来源于stack exchange,提问作者Vanderwood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 12:52:43