NetSuite Oauth实施

时间:2013-03-07 12:40:18

标签: netsuite

我正在寻找Netsuite中的oauth实现.Netsuite是否支持oauth?我在NetSuite中搜索了誓言实现,但没有一个结果。

有没有官方文件说netsuite不支持oauth?

6 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

NetSuite的SuiteTalk API支持oAuth,虽然它的实现方式与其他服务(谷歌,条纹等)截然不同。获取oauth凭证要求用户运行非显而易见的过程并复制/粘贴四个单独的密钥。我写了guide detailing how to setup NetSuite SuiteTalk API with oAuth

答案 2 :(得分:2)

Netsuite不支持OAuth ,您可以使用OAuth从外部应用程序调用Restlet。为了使其正常工作,需要配置很多东西,它非常复杂,因此我编写了逐步指南。  Check out the step by step instructions

  

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

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)

答案 3 :(得分:0)

现在没有oauth选项(如果您正在谈论生成密钥的应用程序等)

Netsuite只有webservices SOAP,RESTlet for integration选项。

答案 4 :(得分:0)

要明确的是,当用户离开去另一个应用程序(第三方应用程序)时,NetSuite确实会提供Oauth。

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

您需要登录NetSuite,然后点击支持,然后在SAML上搜索以查看这些文档。

如果这回答了你的问题,请告诉我。

答案 5 :(得分:0)