自定义终结点是 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:创建服务主体应用
浏览到“标识”>“应用程序”>“应用注册”,选择“新建注册”。
输入应用程序的显示名称。
打开应用,复制客户端 ID 和租户 ID 供以后使用。
转到“证书和机密”,添加新的客户端机密并复制该值。
完成后,你应已准备好以下三项信息:
- Azure 客户端 ID
- Azure 租户 ID
- Azure 客户端机密
步骤 2:分配 Fabric 工作区权限
步骤 3:在 VS Code 中设置项目
在 VS Code 中打开终端并下载 GitHub 项目,或运行以下命令以克隆项目。
git clone https://github.com/ruiminwang/eventstream-entra-id-auth-samples.git
安装 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
设置环境变量。 为服务主体应用配置环境变量:
$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
在 Eventstream 中,将自定义终结点添加为源。
选择“自定义终结点”>“Entra ID 身份验证”,复制以下详细信息,并将其粘贴到 ProducerSample.java 文件中:
- 事件中心命名空间
- 事件中心
运行以下命令以生成并运行项目:
mvn clean package java -cp .\target\EventHubOAuth-1.0-SNAPSHOT-jar-with-dependencies.jar com.microsoft.ProducerSample
如果数据成功发送,你可以转到事件流查看传入的数据。
从 Eventstream 提取数据
在 Eventstream 中,将自定义终结点添加为目标。
选择“自定义终结点”>“Entra ID 身份验证”,复制以下详细信息,并将其粘贴到 ConsumerSample.java 文件中:
- 事件中心命名空间
- 事件中心
- 使用者组
运行以下命令以生成并运行项目:
mvn clean package java -cp .\target\EventHubOAuth-1.0-SNAPSHOT-jar-with-dependencies.jar com.microsoft.ConsumerSample
成功运行项目后,你可以在应用程序中查看传入的数据。