SOAP – HMAC signature – TBA Token-Based Authentication – How to generate the signature?
Hi all,
i have a problem to generate the signature for the SOAP Call via TBA authentication
- ConsumerKey and ConsumerSecret is done/valid/recreated many time
- AccessToken and AccessToken is done/valid/recreated
- Role is done and User have this role
I See the requests in NetSuite in the “SetupManager->Users/Role->Login Audit Trail Search” menue. The detail says always “Status: failed, Detail:invalidSignature”.
So I try to find the correct calculation of the signature. First way is the documentation of NetSuite -> https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4395625838.html#Updating-a-SOAP-Web-Services-Integration-to-Send-Token-Based-Authentication-Details
But with the information on the documentation they got the signature “fzGxUBu6SZvGqv5hk8P4ou2DPthSxXtJ4zJIeCBQK5A=” in the documentation with following datas:
<ns:tokenPassport soap:actor=”http://schemas.xmlsoap.org/soap/actor/next” soap:mustUnderstand=”0″ xmlns:ns=”urn:messages_2017_1.platform.webservices.netsuite.com”>
<ns:account>1234567</ns:account>
<ns:consumerKey>71cc02b731f05895561ef0862d71553a3ac99498a947c3b7beaf4a1e4a29f7c4</ns:consumerKey>
<ns:token>89e08d9767c5ac85b374415725567d05b54ecf0960ad2470894a52f741020d82</ns:token>
<ns:nonce>6obMKq0tmY8ylVOdEkA1</ns:nonce>
<ns:timestamp>1439829974</ns:timestamp>
<ns:signature algorithm=”HMAC_SHA256″>fzGxUBu6SZvGqv5hk8P4ou2DPthSxXtJ4zJIeCBQK5A=</ns:signature>
</ns:tokenPassport>
consumerSecret = “7278da58caf07f5c336301a601203d10a58e948efa280f0618e25fcee1ef2abd”
tokenSecret = “060cd9ab3ffbbe1e3d3918e90165ffd37ab12acc76b4691046e2d29c7d7674c2”
I tried many options in creating a signature, but never got the “fzGxUBu6SZvGqv5hk8P4ou2DPthSxXtJ4zJIeCBQK5A=” back!
Data for signature request = “1234567&71cc02b731f05895561ef0862d71553a3ac99498a947c3b7beaf4a1e4a29f7c4&89e08d9767c5ac85b374415725567d05b54ecf0960ad2470894a52f741020d82&6obMKq0tmY8ylVOdEkA1&1439829974”
Key for signature request = “7278da58caf07f5c336301a601203d10a58e948efa280f0618e25fcee1ef2abd060cd9ab3ffbbe1e3d3918e90165ffd37ab12acc76b4691046e2d29c7d7674c2”
But I tried many online HMAC generation tools and they gave me another signature back. Also my programming function, which I use, gives mit different values back. “142821219a9735eb6e658f082d63851f4b9c75fcd03a602e2feabe905db5ccfb” and in base64 “FCghIZqXNetuZY8ILWOFH0ucdfzQOmAuL+q+kF21zPs=”
Is the documentation wrong, or which options I have to choose in creating the signature?
Can anybody help me and give me a feedback “documentation is right/wrong”?
many thanks for all, which tries to help
Armin
Hi Armin,
This is always really difficult to debug.
Perhaps the best help I can provide is a Postman Pre-Request script that I know to work:
———-
const account_id = pm.environment.get(‘account_id’).toUpperCase();
Please let me know if you need any further assistance.
Thanks,
Chris



