Я, насколько мог, следовал документации из Оракулы в помощь. Запись интеграции создана, поэтому единственное, чего мне не хватает, это того, что должно произойти на стороне Azure, чтобы две системы могли аутентифицироваться друг с другом.
Я просмотрел этот пост, но похоже, это будет настройка API для доступа к ресурсам Azure, где я хочу, чтобы Azure Synapse получал данные из NetSuite.
ОБНОВЛЕНИЕ: мне удалось заставить M2M работать внутри NetSuite с использованием Postman, следуя этому видео. Я все еще пытаюсь выяснить, как создать это в Azure, чтобы я мог создать JWT для вызова NetSuite из Synapse.
ОБНОВЛЕНИЕ 2: теперь я использую Spark Pool для подписи JWT, и когда он запускается локально, я могу пройти аутентификацию и получить возвращенный токен доступа.
Код: Выделить всё
import time
import jwt
import http.client
sec = '-----BEGIN PRIVATE KEY-----\nMIIG/gIBADANBgkqhkiG9w0BAQEFAASCBugwggbkAgEAAoIBgQDkW+cE7G05KETS\n#################################################################################\n-----END PRIVATE KEY-----'
jwtheader = {
"alg": "RS256",
"typ": "JWT",
"kid": "rn9dnIL###############"
}
iat = round(time.time(),3)
payload_data = {
"iss": "6477f8bea7f####################",
"scope": ["restlets", "rest_webservices", "suite_analytics"],
"aud": "https://#######.suitetalk.api.netsuite.com/services/rest/auth/oauth2/v1/token",
"exp": iat + 3600,
"iat": iat
}
token = jwt.encode(payload=payload_data,key=sec,headers = jwtheader)
conn = http.client.HTTPSConnection("#######.suitetalk.api.netsuite.com")
payload = 'grant_type=client_credentials&client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&client_assertion='+token
headers = {
'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/services/rest/auth/oauth2/v1/token", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Подробнее здесь: https://stackoverflow.com/questions/717 ... nd-synapse