我正在尝试使用node-rfc执行CRUD操作。我尝试使用的系统具有SNC。
我不知道如何很好地解释它,但是SNC是一种多因素身份验证。
我正在使用以下参数
var abapSystem = {
sncName: 'p/secude:CN=<SYSTEM>,O=<COMPANY>,C=US',
ashost: 'something.db.com',
sysnr: '00',
client: '400',
SNC_MODE: '1'
};
并得到一个错误
为SNC-API调用提供了无效的参数
有人知道如何设置吗?
完整代码:
var rfc = require('node-rfc');
var abapSystem = {
user: 'sap_user',
passwd: 'sap_user_pwd',
ashost: 'sap.nodomain',
sysnr: '01',
client: '800'
};
var client = new rfc.Client(abapSystem);
var MAX_ROWS = 3;
var SELECTION_RANGE_str = {
PARAMETER: "USERNAME",
SIGN: "I",
OPTION: "CP",
LOW: "A*"
};
var SELECTION_RANGE_tab = [SELECTION_RANGE_str];
client.connect(function(err) {
if (err) {
return console.error('could not connect to server', err);
}
client.invoke('BAPI_USER_GETLIST', {
MAX_ROWS: MAX_ROWS,
SELECTION_RANGE: SELECTION_RANGE_tab
},
function(err, res) {
if (err) {
return console.error('Error invoking BAPI_USER_GETLIST:', err);
}
console.log('Result BAPI_USER_GETLIST:', res);
});
});
最佳答案
我不知道如何很好地解释它,但是SNC是多因素身份验证
SNC不是多因素身份验证。期。
仔细阅读help,它是具有加密功能的SSO SAP技术。
我想您的情况下应该遵循以下参数:
var abapSystem = {
'snc_mode' : '1',
'snc_partnername': 'p/secude:CN=<SYSTEM>,O=<COMPANY>,C=US',
'snc_lib': 'C:\\Program Files (x86)\\SECUDE\\OfficeSecurity\\secude.dll',
'sysid': 'SDC',
'ashost': 'something.db.com',
'sysnr': '00',
'client': '400',
'lang': 'EN',
'trace': '3'
};
有关更多详细信息,请参见help。
还要考虑this thread(源自this)和其中的SAP注释,SAP后端需要一些其他配置。 node-rfc与PyRFC建立在the same binaries上,因此遵循相同的原理。
关于node.js - 如何为node-rfc设置SNC参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59843446/