StandardAzureIdentityFederationTokenProvider

文档中心 › 组件索引 › StandardAzureIdentityFederationTokenProvider

StandardAzureIdentityFederationTokenProvider Controller Service

类型全限定名:cn.org.acal.lynxus.services.azure.StandardAzureIdentityFederationTokenProvider

所属 Bundle:cn.org.acal.lynxus:lynxus-azure-nar:2.11.8

描述

为工作负载身份联合提供 Azure TokenCredential。使用 Azure Identity SDK 的 ClientAssertionCredential 将外部身份令牌(来自 OAuth2 提供者)交换为 Azure AD 访问令牌,具有内置缓存和重试逻辑。

标签

azureidentityfederationcredentialsworkload

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Tenant IDMicrosoft Entra 租户 ID。
Client ID为工作负载身份联合配置的 Microsoft Entra 应用程序注册的应用程序(客户端)ID。
Client Assertion Provider控制器服务 API:
OAuth2AccessTokenProvider
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
Controller Service,用于检索与 Azure AD 交换的外部工作负载身份令牌(客户端断言)。

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

提供的 Service API

  • AzureIdentityFederationTokenProvider (cn.org.acal.lynxus-lynxus-azure-services-api-nar-2.11.8)

详细说明

StandardAzureIdentityFederationTokenProvider

StandardAzureIdentityFederationTokenProvider 为工作负载身份联合 (workload identity federation)提供 Azure TokenCredential。它使用 Azure Identity SDK 的 ClientAssertionCredential,把外部身份提供者 的令牌交换为 Azure AD 凭据。该方式提供了内置的令牌缓存、自动刷新和 完善的错误处理。

当 Credentials Type 设为 Identity Federation 时,ADLS 和 Azure Storage 凭据 Controller Service 等组件会引用该提供器。

配置流程

  1. Client Assertion Provider – 选择一个获取外部工作负载身份令牌的 Controller Service。该令牌会作为 client_assertion 参数传给 Azure AD。
  2. Tenant ID 和 Client ID – 为联合应用注册提供 Microsoft Entra 租户和应用(客户端)ID。

运行时,该服务提供由 ClientAssertionCredential 支撑的 TokenCredential。当消费方组件请求令牌(指定适当的 scope)时, 该凭据通过 https://login.microsoftonline.com/<tenant>/oauth2/v2.0/token 把 client assertion 交换为 Azure AD 访问令牌。Azure Identity SDK 负责令牌缓存,并在令牌过期时自动刷新。

请确保联合应用注册具备必要的 Azure RBAC 角色(例如 Storage Blob Data Contributor,以及按需的 Azure Event Hubs Data Receiver/Sender),并确保 client assertion 提供器在断言过期之前刷新它们,以便能获取新的 Azure 访问令牌。

Azure 资源 Scope

不同的 Azure 服务在请求令牌时需要不同的 scope。scope 由消费方组件 根据所访问的 Azure 服务自动确定:

  • https://storage.azure.com/.default – Azure Storage 操作(Blob、ADLS、Queue)。
  • https://eventhubs.azure.net/.default – Event Hubs 操作。
  • https://management.azure.com/.default – Azure Resource Manager API。

注意:Microsoft Entra 要求每次客户端凭据请求只针对单一资源(*.default)。

Event Hub 组件

  • GetAzureEventHub、PutAzureEventHub 和 ConsumeAzureEventHub 支持对 Event Hubs 连接使用 Identity Federation 认证策略。
  • ConsumeAzureEventHub 对 Blob Storage 检查点存储也支持 Identity Federation。

Entra ID 配置摘要

  1. 在 Microsoft Entra ID 中为 Lynxus 创建或复用应用注册。
  2. 添加联合凭据(Certificates & secrets → Federated credentials), 与你的 issuer/subject 匹配。把 audience 设为 api://AzureADTokenExchange。
  3. 为该应用注册分配 RBAC 角色,例如在存储账号上授予 Storage Blob Data Reader/Storage Blob Data Contributor。
  4. 记录 Tenant ID 和 Client ID,用于在 Lynxus 中配置 Controller Service。