咨询:ADF创建HTTP链接服务时无托管身份认证选项
问题场景
我在创建ADF数据流时,需要通过ADF实例的托管身份认证从REST API拉取JSON数据,再复制到Kusto集群。按照官方文档配置HTTP链接服务时,发现界面里找不到托管身份的认证选项,但ADF的Web任务却有这个选项。
原因
HTTP连接器的托管身份认证支持并未在所有UI场景下开放,默认界面不显示该选项,需通过ARM模板手动配置启用。
解决步骤
导出HTTP链接服务的ARM模板
在ADF门户找到目标HTTP链接服务,点击「导出ARM模板」,下载对应的模板文件。修改模板启用托管身份
打开模板的resources节点,找到HTTP链接服务的配置段,将typeProperties中的authenticationType改为ManagedServiceIdentity,同时添加resourceId(即目标REST API对应的Azure资源ID,比如是Azure Functions的话,就填函数应用的资源ID)。示例代码片段:"typeProperties": { "url": "https://your-target-api-url", "authenticationType": "ManagedServiceIdentity", "resourceId": "https://management.azure.com/subscriptions/[订阅ID]/resourceGroups/[资源组]/providers/Microsoft.Web/sites/[函数应用名称]" }重新部署模板
回到ADF门户,点击「部署ARM模板」,上传修改后的模板完成部署。配置权限
确保ADF的托管身份已被授予访问目标REST API的权限:比如针对Azure Functions,要在函数应用的IAM中给ADF托管身份添加合适的角色(如「函数应用参与者」),具体权限根据API的访问要求调整。验证使用
部署完成后,回到数据流配置,使用修改后的HTTP链接服务即可通过托管身份完成认证,正常拉取数据。
替代方案
如果不想修改ARM模板,也可以先用Web活动调用REST API获取数据,再将数据传递给复制活动写入Kusto。但这种方式在处理大规模数据时,效率不如直接用HTTP连接器的数据流。
内容的提问来源于stack exchange,提问作者Luke Rodriguez

