【问题标题】:How to set SNC parameters for node-rfc?如何为 node-rfc 设置 SNC 参数?
【发布时间】:2020-01-21 14:38:02
【问题描述】:

我正在尝试使用 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 是什么的人说话,你会接触到更广泛的受众。

标签: node.js sap saprfc


【解决方案1】:

我不知道如何解释,但 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 是基于 the same binaries 作为 PyRFC 构建的,因此遵循相同的原则。

【讨论】:

  • 以下参数对我有用 ashost: 'something.db.com', sysId: '', sysnr: '00', client: '400', lang: 'EN ', snc_partnername: 'p/secude:CN=,O=,C=US',谢谢!感谢您也解释 SNC :)
  • 我认为打开 SNC 还需要参数 'snc_mode' : '1'。或者 PyRFC 在检测到 SNC 参数之一时会自动设置它吗?我知道底层的 RFC 库不会自动设置它。此外,您可能需要 'snc_qop' : '9' 以获得最高的安全性(加密加数字签名)。
  • 公平点,我想我们错过了 OP,现在添加。谢谢。安全参数取决于询问者系统设置,因此由他来调整它们
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 1970-01-01
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-17
相关资源
最近更新 更多