在 Eventstream 中为应用程序启用 Entra ID 身份验证

自定义终结点是 Eventstream 的一种特殊类型的源或目标,允许应用程序向 Eventstream 发送数据以及从 Eventstream 提取数据。 它支持两种用于连接到应用程序的身份验证方法:SAS 密钥和 Entra ID 身份验证

  • SAS 密钥身份验证:允许使用共享访问签名 (SAS) 密钥生成和使用 Eventstream 数据。
  • Entra ID 身份验证:允许安全主体(例如用户或服务主体)使用 Microsoft Entra ID 身份验证生成和使用 Eventstream 数据。

本文将指导你创建服务主体应用程序、在 Visual Studio Code 中设置 Java 项目,并使用 Microsoft Entra ID 身份验证连接到 Eventstream。

先决条件

  • 工作区中带有自定义终结点源或目标的 Eventstream 项。 如需了解如何向 Eventstream 添加自定义终结点,请参阅本指南
  • 安装 Visual Studio Code
  • 设置用于 Java 开发的 VS Code。 安装 Java 编码包

步骤 1:创建服务主体应用

  1. 登录 Microsoft Entra 管理中心

  2. 浏览到“标识”>“应用程序”>“应用注册”,选择“新建注册”。

  3. 输入应用程序的显示名称。

  4. 打开应用,复制客户端 ID 和租户 ID 供以后使用

    应用 ID 的屏幕截图。

  5. 转到“证书和机密”,添加新的客户端机密并复制该值。

    应用机密的屏幕截图。

  6. 完成后,你应已准备好以下三项信息:

    • Azure 客户端 ID
    • Azure 租户 ID
    • Azure 客户端机密

步骤 2:分配 Fabric 工作区权限

  1. 转到 Fabric 工作区并选择“管理访问权限”。

    工作区管理访问权限的屏幕截图。

  2. 搜索在上一步中创建的应用程序,并向应用分配“参与者”角色(或拥有更高权限的角色)。

    向应用分配工作区权限的屏幕截图。

步骤 3:在 VS Code 中设置项目

  1. 在 VS Code 中打开终端并下载 GitHub 项目,或运行以下命令以克隆项目。

    git clone https://github.com/ruiminwang/eventstream-entra-id-auth-samples.git
    
  2. 安装 Java 和 Maven。 如果没有安装 Java 和 Maven,请使用 Scoop 安装它们

    # https://scoop.sh/
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
    
    scoop bucket add java
    scoop install oraclejdk-lts
    scoop install maven
    
  3. 设置环境变量。 为服务主体应用配置环境变量:

    $env:AZURE_CLIENT_ID="00001111-aaaa-2222-bbbb-3333cccc4444"
    $env:AZURE_TENANT_ID="aaaabbbb-0000-cccc-1111-dddd2222eeee"
    $env:AZURE_CLIENT_SECRET="Aa1Bb~2Cc3.-Dd4Ee5Ff6Gg7Hh8Ii9_Jj0Kk1Ll2"
    

步骤 4:生成并运行项目

将数据发送到 Eventstream

  1. 在 Eventstream 中,将自定义终结点添加为源。

  2. 选择“自定义终结点”>“Entra ID 身份验证”,复制以下详细信息,并将其粘贴到 ProducerSample.java 文件中:

    • 事件中心命名空间
    • 事件中心

    VS Code 中的生产者示例代码的屏幕截图。

  3. 运行以下命令以生成并运行项目:

    mvn clean package
    
    java -cp .\target\EventHubOAuth-1.0-SNAPSHOT-jar-with-dependencies.jar com.microsoft.ProducerSample
    

如果数据成功发送,你可以转到事件流查看传入的数据。

从 Eventstream 提取数据

  1. 在 Eventstream 中,将自定义终结点添加为目标。

  2. 选择“自定义终结点”>“Entra ID 身份验证”,复制以下详细信息,并将其粘贴到 ConsumerSample.java 文件中:

    • 事件中心命名空间
    • 事件中心
    • 使用者组

    VS Code 中的消费者示例代码的屏幕截图。

  3. 运行以下命令以生成并运行项目:

    mvn clean package
    
    java -cp .\target\EventHubOAuth-1.0-SNAPSHOT-jar-with-dependencies.jar com.microsoft.ConsumerSample
    

成功运行项目后,你可以在应用程序中查看传入的数据。