在SAS中:为Google API创建JSON Web签名
我正在使用SAS 9.4。我想写一个JSON Web签名(“JWS”)来完成我的JSON Web令牌(“JWT”)-(我已经对标题和声明进行了编码和测试)。我想对谷歌进行API调用。我的问题是我不确定如何创建JWS。根据所有文档和教程网站,我研究了创建签名的语法is(伪代码): 和/或在SAS中:为Google API创建JSON Web签名,json,google-api,sas,java-web-start,jwt,Json,Google Api,Sas,Java Web Start,Jwt,我正在使用SAS 9.4。我想写一个JSON Web签名(“JWS”)来完成我的JSON Web令牌(“JWT”)-(我已经对标题和声明进行了编码和测试)。我想对谷歌进行API调用。我的问题是我不确定如何创建JWS。根据所有文档和教程网站,我研究了创建签名的语法is(伪代码): 和/或 var encodedString = base64UrlEncode(header) + "." + base64UrlEncode(payload); HMACSHA256(encodedString, 's
var encodedString = base64UrlEncode(header) + "." + base64UrlEncode(payload);
HMACSHA256(encodedString, 'secret');
等等
我一直在尝试使用SAS PROC GROOVY代码创建JWS,代码如下:
…和其他地方
谷歌的doc()声明:
“使用从Google开发者控制台获得的私钥,使用SHA256withRSA(也称为RSASSA-PKCS1-V1_5-Sign和SHA-256哈希函数)对输入的UTF-8表示形式({Base64url编码头}.{Base64url编码声明集})进行签名。输出将是一个字节数组。”
然而,我对使用什么密钥(或者我是否应该使用密钥)感到困惑,因为一些站点(上面的示例)只建议对编码的头+声明进行哈希运算,而其他站点则建议使用“私钥”进行哈希运算,而github页面(上面的URL)只使用“密钥”
我也对sha1和SH256感到困惑。Google文档支持sha256,但有些人在这个堆栈溢出线程中建议使用sha1:questions/18362327/使用sas为Google api地理代码创建数字签名
同样,我已使用以下方法验证了我的标头和声明SAS代码的工作情况:
jwt点io
和
kjur.github.io/jsjws/tool_jwt.html
由于SAS支持Groovy(PROC Groovy),我假设我可以使用java代码成功地编写JWT,但我还没有能够使用我上面提到的站点和其他站点上的示例在SAS代码中复制任何JWT
以前有没有人这样做过(使用SAS连接到使用JWT的Google API)
感谢您的帮助
var encodedString = base64UrlEncode(header) + "." + base64UrlEncode(payload);
HMACSHA256(encodedString, 'secret');