NetSuite Oauth 实施

问题描述 投票:0回答:7

我正在寻找 Netsuite 中的 oauth 实现。Netsuite 支持 oauth 吗?我在 NetSuite 中搜索了誓言实现,但没有任何结果。

有官方文档说netsuite不支持oauth吗?

netsuite
7个回答
4
投票

NetSuite 的 SuiteTalk API 确实支持 oAuth,尽管它的实现方式与其他服务(google、stripe 等)非常不同。获取 oauth 凭据需要用户运行一个不明显的过程并复制/粘贴四个单独的密钥。我编写了一份指南,详细介绍了如何使用 oAuth 设置 NetSuite SuiteTalk API。


3
投票
在 15.1 中,NetSuite 支持使用 OAuth 1.0 令牌进行入站 RESTlet 调用(请注意,它不是完整的 OAuth 1.0 协议,尽管它利用其令牌和标头格式)。在 NetSuite 中,您可以通过两种方式获取访问令牌 - 调用令牌端点,或者从 UI 手动获取。 好处是,如果您计划从 node.js 或 SuiteScript(例如 Suitelets)调用 RESTlet,您仍然可以使用 OAuth 1.0 开源库,例如 Java 的 scribe 或 oauth-1.0a.js。

PS 只需寻找 RESTlet 的基于令牌的身份验证


3
投票
Netsuite 支持 OAuth

,您可以使用 OAuth 从外部应用程序调用 Restlet。为了让它工作,需要配置很多东西,它非常复杂,所以我写了这个分步指南。 查看分步说明

配置签名和标头的基本代码

var NETSUITE_ACCOUNT_ID = '1234567890_SB' var BASE_URL = 'https://1234567890_SB.restlets.api.netsuite.com/app/site/hosting/restlet.nl' var HTTP_METHOD = 'POST' var SCRIPT_ID = '613' var OAUTH_VERSION = '1.0'; var SCRIPT_DEPLOYMENT_ID = '1' var TOKEN_ID = "1234567890abcdefghijklmnopqrstuvwxyz0987654321" var TOKEN_SECRET = "1234567890abcdefghijklmnopqrstuvwxyz0987654321" var CONSUMER_KEY = "1234567890abcdefghijklmnopqrstuvwxyz0987654321" var CONSUMER_SECRET = "1234567890abcdefghijklmnopqrstuvwxyz0987654321" var text = ""; var length = 32; var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < length; i++) { text += possible.charAt(Math.floor(Math.random() * possible.length)); } var OAUTH_NONCE = text; var TIME_STAMP = Math.round(+new Date() / 1000); var data = ''; data = data + 'deploy=' + SCRIPT_DEPLOYMENT_ID + '&'; data = data + 'oauth_consumer_key=' + CONSUMER_KEY + '&'; data = data + 'oauth_nonce=' + OAUTH_NONCE + '&'; data = data + 'oauth_signature_method=' + 'HMAC-SHA1' + '&'; data = data + 'oauth_timestamp=' + TIME_STAMP + '&'; data = data + 'oauth_token=' + TOKEN_ID + '&'; data = data + 'oauth_version=' + OAUTH_VERSION + '&'; data = data + 'script=' + SCRIPT_ID; var encodedData = encodeURIComponent(data); var completeData = HTTP_METHOD + '&' + encodeURIComponent(BASE_URL) + '&' + encodedData; var hmacsha1Data = CryptoJS.HmacSHA1(completeData, CONSUMER_SECRET + '&' + TOKEN_SECRET); var base64EncodedData = Base64.stringify(hmacsha1Data); var oauth_signature = encodeURIComponent(base64EncodedData); var OAuth = 'OAuth oauth_signature="' + oauth_signature + '",'; OAuth = OAuth + 'oauth_version="1.0",'; OAuth = OAuth + 'oauth_nonce="' + OAUTH_NONCE + '",'; OAuth = OAuth + 'oauth_signature_method="HMAC-SHA1",'; OAuth = OAuth + 'oauth_consumer_key="' + CONSUMER_KEY + '",'; OAuth = OAuth + 'oauth_token="' + TOKEN_ID + '",'; OAuth = OAuth + 'oauth_timestamp="' + TIME_STAMP + '",'; OAuth = OAuth + 'realm="' + NETSUITE_ACCOUNT_ID + '"'; var request = https.post({ url: BASE_URL + '?script=' + SCRIPT_ID + '&deploy=' + SCRIPT_DEPLOYMENT_ID, headers: { "Content-Type": "application/json", "Authorization": OAuth }, body: JSON.stringify({ hello: "world" }) }) var response = JSON.parse(request.body) log.debug('response', response)


0
投票

Netsuite 仅具有 Web 服务 SOAP、RESTlet 用于集成选项。


0
投票

不支持从第 3 方进入 NetSuite。为此,您需要使用 SAML,在我们现在使用的版本 (2013.1) 之前的版本 (2012.3) 中,它现在支持 SAML,并且据报道可以使用。我们正在内部针对 Microsoft AD FS 部署 SAML,但只完成了一半,但我们会得到它,我们会使用它,并且喜欢它。

您需要登录 NetSuite,然后点击“支持”,然后搜索 SAML 才能查看这些文档。

如果这能回答您的问题,请告诉我。


0
投票

https://system.netsuite.com/help/helpcenter/en_US/Output/Help/SuiteCloudCustomizationScriptingWebServices/SingleSignon/SingleSignonOverview-ch.html


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.