Поток учетных данных клиента M2M между NetSuite и SynapsePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Поток учетных данных клиента M2M между NetSuite и Synapse

Сообщение Anonymous »

Я хочу создать где-нибудь в стеке Azure поток, который позволит мне получить аутентификацию M2M между Azure Synapse и NetSuite. Цель состоит в том, чтобы иметь возможность отказаться от использования коннектора ODBC и переключиться на вызовы REST для передачи данных из NetSuite в Synapse.
Я, насколько мог, следовал документации из Оракулы в помощь. Запись интеграции создана, поэтому единственное, чего мне не хватает, это того, что должно произойти на стороне 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"))
Однако, когда я использую пул Spark в Azure Synapse, мне возвращается {"error":"invalid_grant"}. Без изменения кода. Я пробовал как библиотеку requests, так и http.client(показан выше).


Подробнее здесь: https://stackoverflow.com/questions/717 ... nd-synapse
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»