Обработка токенов носителя в конвейере Azure для объектов HTTP - PullRequest
0 голосов
/ 20 декабря 2018

Итак, в фабрике данных Azure для конвейера у меня был настроен объект HTTP для копирования данных из API, он использовал базовый пароль и имя пользователя.Теперь API использует токен на предъявителя для авторизации вызовов.Мне удалось зашифровать решение на Python, но я действительно не знаю, как заставить Azure обработать этот процесс аутентификации на этапе копирования.

Есть ли способ вызова для носителяранее, а затем передать его как часть пароля службы HTTP-ссылок?

Python Script:

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"))

1 Ответ

0 голосов
/ 20 декабря 2018

К сожалению, согласно Скопировать данные из конечной точки HTTP с помощью фабрики данных Azure , единственными поддерживаемыми методами аутентификации являются: Анонимный , Базовый , Дайджест , Windows или ClientCertificate .

Но вы можете обойти эту проблему, используя additionalHeaders из Свойства набора данных для передачи токена носителя на конечную точку HTTP .

Чтобы получить токен (и даже вы могли бы получить данные таким образом), вы можете использовать Веб-активность в фабрике данных Azure для выполнения HTTP запросов.

Надеюсь, это поможет!

...