使用托管标识从 Azure 流分析作业访问事件中心

Azure 流分析支持针对 Azure 事件中心的输入和输出进行托管标识身份验证。 托管标识消除了基于用户的身份验证方法的限制,例如,由于每隔 90 天进行一次密码更改(否则用户令牌会过期),需要重新进行身份验证。 当你不再需要手动进行身份验证时,流分析部署可以完全自动化。 

托管标识是 Microsoft Entra ID 中注册的托管应用程序,表示给定的流分析作业。 托管应用程序用于向目标资源(包括位于防火墙或虚拟网络 (VNet) 后面的事件中心)进行身份验证。 若要详细了解如何绕过防火墙,请参阅允许通过专用终结点访问 Azure 事件中心命名空间

本文介绍如何通过 Azure 门户为流分析作业的事件中心输入或输出启用托管标识。 在启用托管标识之前,必须先有一个流分析作业和事件中心资源。

创建托管标识

首先,创建 Azure 流分析作业的托管标识。 

  1. 在 Azure 门户中,打开 Azure 流分析作业。 

  2. 从左侧导航菜单中,选择“配置”下的“托管标识”。 然后,选中“使用系统分配的托管标识”旁的框,然后选择“保存”。

    System assigned managed identity

  3. 在 Microsoft Entra ID 中为流分析作业的标识创建服务主体。 新建标识的生命周期将由 Azure 管理。 删除流分析作业时,Azure 会自动删除关联的标识(即服务主体)。 

    保存配置后,服务主体的对象 ID (OID) 将列为主体 ID,如下所示:

    Principal ID

    服务主体与流分析作业同名。 例如,如果作业的名称是 MyASAJob,则服务主体的名称也是 MyASAJob。 

向流分析作业授予访问事件中心的权限

为了使流分析作业能够使用托管标识访问事件中心,你创建的服务主体必须具有访问事件中心的特殊权限。

  1. 选择“访问控制 (IAM)”。

  2. 选择“添加”>“添加角色分配”,打开“添加角色分配”页面 。

  3. 分配以下角色。 有关详细步骤,请参阅使用 Azure 门户分配 Azure 角色

注意

授予对任何资源的访问权限时,应授予最不需要的访问权限。 根据是将事件中心配置为输入还是输出,可能不需要分配 Azure 事件中心数据所有者角色,该角色会授予对 Eventhub 资源超过必需的访问权限。 有关详细信息,请参阅使用 Microsoft Entra ID 对应用程序进行身份验证以访问事件中心资源

设置
角色 Azure 事件中心数据所有者
将访问权限分配到 用户、组或服务主体
成员 <流分析作业的名称>

Screenshot that shows Add role assignment page in Azure portal.

还可以在事件中心命名空间级别授予此角色,这样就会将权限自然地传播到在该级别下创建的所有事件中心。 也就是说,某个命名空间下的所有事件中心都可以用作流分析作业中的托管标识身份验证资源。

注意

由于全局复制或缓存延迟,在撤销或授予权限时可能会有延迟。 更改应在 8 分钟内反映出来。

创建事件中心输入或输出

你现在已经配置了托管标识,可以将事件中心资源作为输入或输出添加到流分析作业了。 

添加事件中心作为输入

  1. 转到流分析作业,然后导航到“作业拓扑”下的“输入”页 。

  2. 选择“添加流输入”>“事件中心”。 在输入属性窗口中,搜索并选择事件中心,然后从“身份验证模式”下拉菜单中选择“托管标识”。

  3. 填写其余属性并选择“保存”。

添加事件中心作为输出

  1. 转到流分析作业,然后导航到“作业拓扑”下的“输出”页 。

  2. 选择“添加”>“事件中心”。 在输出属性窗口中,搜索并选择事件中心,然后从“身份验证模式”下拉菜单中选择“托管标识”。

  3. 填写其余属性并选择“保存”。

后续步骤