StandardAzureIdentityFederationTokenProvider Controller Service
描述
为工作负载身份联合提供 Azure TokenCredential。使用 Azure Identity SDK 的 ClientAssertionCredential 将外部身份令牌(来自 OAuth2 提供者)交换为 Azure AD 访问令牌,具有内置缓存和重试逻辑。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Tenant ID | | Microsoft Entra 租户 ID。 | |
| Client ID | | 为工作负载身份联合配置的 Microsoft Entra 应用程序注册的应用程序(客户端)ID。 | |
| Client Assertion Provider | | 控制器服务 API:OAuth2AccessTokenProvidercn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | Controller Service,用于检索与 Azure AD 交换的外部工作负载身份令牌(客户端断言)。 |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
提供的 Service API
AzureIdentityFederationTokenProvider
详细说明
StandardAzureIdentityFederationTokenProvider
StandardAzureIdentityFederationTokenProvider 为工作负载身份联合
(workload identity federation)提供 Azure TokenCredential。它使用
Azure Identity SDK 的 ClientAssertionCredential,把外部身份提供者
的令牌交换为 Azure AD 凭据。该方式提供了内置的令牌缓存、自动刷新和
完善的错误处理。
当 Credentials Type 设为 Identity Federation 时,ADLS 和 Azure Storage 凭据 Controller Service 等组件会引用该提供器。
配置流程
- Client Assertion Provider – 选择一个获取外部工作负载身份令牌的
Controller Service。该令牌会作为
client_assertion参数传给 Azure AD。 - 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 配置摘要
- 在 Microsoft Entra ID 中为 Lynxus 创建或复用应用注册。
- 添加联合凭据(Certificates & secrets → Federated credentials),
与你的 issuer/subject 匹配。把 audience 设为
api://AzureADTokenExchange。 - 为该应用注册分配 RBAC 角色,例如在存储账号上授予
Storage Blob Data Reader/Storage Blob Data Contributor。 - 记录 Tenant ID 和 Client ID,用于在 Lynxus 中配置 Controller Service。