javascript - 使用 Chrome 扩展的 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 调用权限的通用帐户。
解决方案
这只有在(用户 A 具有管理员角色)或(用户 A 具有模仿者角色 && 用户 B 不是管理员)时才有可能
1)如果用户A具有管理员角色,那么只要允许目标表访问,他们就可以直接触发任何REST查询。
2) 如果用户 A 具有模拟角色,那么您可以模拟除管理员用户之外的任何用户会话。以下脚本行可用于在用户 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);
推荐阅读
- java - 如何使用 Selenium 在 chrome 中获取警报框
- javascript - Firefox:检查正在修改 DOM 的 javascript
- css - 是否可以在不影响边界半径的情况下使用 transform: scaleX() ?
- html - Firefox HTML 输入类型时间
- excel - 如何计算每个值出现的次数
- python - 在Python中连接两个坐标的多米诺骨牌路径
- javascript - 替换位置后运行Javascript
- phpmyadmin - phpMyAdmin 中的列之间的行
- node.js - React.JS-通过新行组织批量输入
- c++ - 在线程上通过引用传递变量不会编译