首页 > 其他分享 >【Azure Logic App】使用Event Hub 连接器配置 Active Directory OAuth 认证无法成功连接到中国区Event Hub

【Azure Logic App】使用Event Hub 连接器配置 Active Directory OAuth 认证无法成功连接到中国区Event Hub

时间:2024-08-17 17:41:57浏览次数:10  
标签:xxxx cn Hub AUTH EVENTHUB 连接器 TEST Event

问题描述

使用Logic App服务,创建Event Hub触发的Workflow。 根据以下信息配置Event Hub连接器的Active Directory OAuth认证方式:

  • Authentication Type 选择“Active Directory OAuth
  • Fully Qualified Namespace 输入目标 Event Hub Namespace的Host Name, 如 myehnamespace.servicebus.chinacloudapi.cn 
  • Authoriy 输入中国区Azure的Authority,值为:https://login.partner.microsoftonline.cn/
  • Tenant 输入自己在AAD中注册应用的Tenant ID
  • Credential Type 选择 “Secret
  • Client ID 输入在AAD中注册应用的Application ID ( Client ID) 
  • Client Secret 输入在AAD中注册应用生成的密钥

 在正确配置以上信息后。保存Workflow,却无法不能正常工作。

报错信息:

2024-08-17T08:40:30Z   [Error]   An exception occurred while retrieving properties for Event Hub: logicapp. Error Message: 'ClientSecretCredential authentication failed: AADSTS90002: Tenant 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' not found. Check to make sure you have the correct tenant ID and are signing into the correct cloud. Check with your subscription administrator, this may happen if there are no active subscriptions for the tenant.

 

问题解答

根据错误信息 “Error Message: 'ClientSecretCredential authentication failed: AADSTS90002: Tenant 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' not found. ”, 可知获取认证的时候,无法找到Tenant信息,所以无法完成。这是因为在中国Azure中,需要设置正确的Authorityhttps://login.partner.microsoftonline.cn/)。这里虽然配置了正确的Authority,但没有生效,认证请求依旧指向了Global Azure。 

而Logic App是无代码开发,如果配置无法生效的情况下,就只能让Logic App服务团队修复这个问题。

 

目前的代替方案就是使用  Connection String 或 Managed Identity 认证方式。这两种认证方式都可以正常工作!

 

通过Function App复现问题

我们知道,Logic App使用的就是Function App为框架搭建的服务。为了进一步证明是服务本身的问题,可以通过Function App,创建一个Event Hub Trigger的函数,使用Active Direcotry OAuth认证。来复现同样的问题。

第一步:通过VS 2022创建一个Eevent Hub Trigger的函数

第二步:配置Active Directory OAuth信息

在 local.settings.json 文件中,用 TEST_EVENTHUB_AUTH__fullyQualifiedNamespace等系列配置 替换 TEST_EVENTHUB_AUTH 连接字符串。

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_INPROC_NET8_ENABLED": "1",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "AzureWebJobsStorage": "... ... ... ",
    //"TEST_EVENTHUB_AUTH": "... ... ... ",
    "TEST_EVENTHUB_AUTH__fullyQualifiedNamespace": "youreventhubnamespacename.servicebus.chinacloudapi.cn",
    "TEST_EVENTHUB_AUTH__blobServiceUri": "https://xxxx.blob.core.chinacloudapi.cn/",
    "TEST_EVENTHUB_AUTH__queueServiceUri": "https://xxxx.queue.core.chinacloudapi.cn/",
    "TEST_EVENTHUB_AUTH__tenantId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "TEST_EVENTHUB_AUTH__clientId": "xxxx-xxxx-xxxx-xxxx-xxxx",
    "TEST_EVENTHUB_AUTH__clientSecret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "TEST_EVENTHUB_AUTH__Authority": "https://login.partner.microsoftonline.cn/"
  }
}

 

第三步:本地执行,复现 AADSTS90002 错误

 

 

 

参考资料

Azure Functions 开发人员指南 : https://docs.azure.cn/zh-cn/azure-functions/functions-reference?tabs=blob&pivots=programming-language-csharp#local-development-with-identity-based-connections
在函数应用中连接到服务总线 : https://docs.azure.cn/zh-cn/azure-functions/functions-identity-based-connections-tutorial-2#connect-to-the-service-bus-in-your-function-app

 

标签:xxxx,cn,Hub,AUTH,EVENTHUB,连接器,TEST,Event
From: https://www.cnblogs.com/lulight/p/18364675

相关文章

  • Hexo-Github Actions 自动部署方案
    前阵子因为很久没有捡起来写博客,导致电脑的node环境各种版本问题,本地压根运行不起来,所以折腾了一下Hugo方案,感觉Hugo相较于Hexo还是有很多优势的,让我印象比较深的是:整个环境较为独立,不再像Hexo需要依赖电脑Node版本,各种插件需要独立版本,随着Hexo或者Node版本升......
  • 零成本 API 服务搭建,用 GitHub Actions 自动爬取文章?
    前言本着将成本降到最低,我目前做的应用或小程序都是单机的,也就是不用请求接口,只要一上架就没有任何支出。但是写死的数据毕竟有限,应用的内容单一无法紧跟时事热点,每次打开一个样,自然就没有留存。遇到有错字啥还要更新版本,那有没有方法既能丰富应用内容,又不用增加成本呢?既要又要,......
  • linux创建github仓库并用git上传本地仓库到github仓库
    1.创建github仓库(1)点击右上角的头像(2)点击Yourrepositories(3)点击New(4)填写好Owner和Repositoryname点击AddaREADMEfile选择license,再点击Createrepository2.用git上传本地仓库到github仓库git工作流:(1)点击Code再点击Local查看github仓库地址(2)将git......
  • 主流服务器推送技术概述与 Java SSE (Server-Sent Events) 详细讲解
    目录简介服务器推送技术的背景和重要性主流服务器推送技术概览WebSocketLongPollingServer-SentEvents(SSE)HTTP/2Push各技术比较功能性比较性能比较使用场景比较深入理解JavaServer-SentEvents(SSE)什么是Server-SentEvents工作原理Java实现方式J......
  • addEventHandler(MouseEvent.MOUSE_PRESSED, new Event
    canvas.addEventHandler(MouseEvent.MOUSE_DRAGGED,newEventHandler(){@Overridepublicvoidhandle(MouseEvente){doubledifX=e.getSceneX()-baseDrageX;doubledifY=e.getSceneY()-baseDrageY;baseDrageX=e.getSceneX();baseDrageY=e.getSceneY();......
  • 利用 Cloudflare workers 反代 github
    反代Github似乎会被认定为欺诈,严重的会封禁域名,不建议尝试首先绑定你的域名到cloudflare,然后创建一个Worker后写入以下代码并添加自定义域名//反代目标网站.constupstream='github.com';//反代目标网站的移动版.constupstream_mobile='github.com';//访问......
  • github 博客
    https://chirpy.cotes.page/posts/getting-started/#option-2-github-forksudoapt-getinstallruby-fullbuild-essentialzlib1g-devecho'#InstallRubyGemsto~/gems'>>~/.zshrcecho'exportGEM_HOME="\(HOME/gems"'>......
  • Vue2 和 Vue3中EventBus使用差异
    目录前言一、EventBus和mitt的对比二、Vue2中的EventBus使用实例2.1创建EventBus2.2在组件中使用EventBus2.2.1组件A-发送事件2.2.2组件B-监听事件2.3注意事项三、Vue3中的mitt使用实例3.1安装mitt3.2创建mitt实例3.3在组件中使用mitt3......
  • # Tkinter Event事件处理
    #本文章建议有python基础学习理解,主要介绍了tkinter库的事件处理,由本人(菜鸟)从通义千问上经过整理获得,较全面和使用方便,希望大佬帮忙进行完善#事件处理,是GUI程序中不可或缺的重要组成部分,相比来说,控件只是组成一台机器的零部件,#而事件处理则是驱动这台机器“正常”运转的......
  • vulnhub - Jarbas
    vulnhub-Jarbas信息收集sudonmap-sT-sV-sC-O-p22,80,3306,8080192.168.157.176sudonmap-script=vuln-p22,80,3306,8080192.168.157.176有robots.txt#wedon'twantrobotstoclick"build"links8080是后台登录目录扫描扫一下目录(不指定-xphp,html......