使用Chrome扩展程序调用ServiceNow Rest API

时间:2019-01-10 11:08:44

标签: javascript google-chrome-extension servicenow servicenow-rest-api

在以“用户A”身份登录并且不退出“用户A”会话的情况下,如何对“用户B”执行以下查询?

     var settings = {
    "async": true,
    "crossDomain": true,
    "url": "www.url.com",
    "method": "GET",
    "headers": {
    "authorization": "Basic [BASE64]",
    "cache-control": "no-cache",
        }

以用户A登录时,我将执行此查询并立即以用户B登录,而我的会话已被用户B覆盖。我正在尝试使用Chrome扩展程序进行此操作。

“用户B”帐户是具有执行“用户A”所不具有的API调用权限的通用帐户。

1 个答案:

答案 0 :(得分:0)

这仅是可能的 如果(用户A具有管理员角色)或(用户A具有模拟者角色&&用户B不是管理员)

1)如果用户A具有管理员角色,那么只要允许访问目标表,他们就可以直接触发任何REST查询。

2)如果用户A具有模拟角色,那么您可以模拟除admin用户之外的任何用户会话。以下脚本行可用于在用户A的会话中模拟用户B,然后以用户B的身份触发所需的API

var originalUserID = gs.getUserID();

//Replace SYS_ID_USER_B with the sys_id of user B from the profile
gs.getSession().impersonate('SYS_ID_USER_B'); 

//Trigger REST API as USER B -- START


//Trigger REST API as USER B -- END

//Impersonate back to the original user
gs.getSession().impersonate(originalUserID);