首页 > 解决方案 > 在 Azure Pipeline 中处理 HTTP 对象的不记名令牌

问题描述

因此,在 Azure 数据工厂中,对于管道,我设置了一个 HTTP 对象,用于从 API 复制数据,它使用基本密码和用户名。现在 API 使用不记名令牌来授权调用。我已经能够在 Python 中编写一个解决方案,但我真的不知道如何让 Azure 在复制步骤中处理这个身份验证过程。

有没有办法更早地调用不记名令牌,然后将其作为 HTTP 链接服务密码的一部分传递?

Python脚本:

import http.client

conn = http.client.HTTPSConnection("www.url.com")

headers = {
    'authorization': "Basic [removed]",
    'cache-control': "no-cache",
    }
conn.request("GET", "/v1/oauth2/accesstoken?grant_type=client_credentials", headers=headers)
res = conn.getresponse()
data = res.read()

import json
datajson = json.loads(data.decode("utf-8"))
headers = {
    'authorization': "Bearer " + datajson["access_token"],
    'cache-control': "no-cache",
    }

conn.request("GET", "/data?data-date=2018-12-09", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))

标签: azureazure-data-factory

解决方案


不幸的是,根据使用 Azure 数据工厂从 HTTP 端点复制数据,唯一受支持的身份验证方法是:AnonymousBasicDigestWindowsClientCertificate

但是,您可以通过使用数据集additionalHeaders属性将不记名令牌传递给HTTP端点来解决问题。

要获取令牌(甚至您也可以通过这种方式获取数据),您可以使用Azure 数据工厂中的 Web 活动来执行HTTP请求。

希望能帮助到你!


推荐阅读