在以“用户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调用权限的通用帐户。
答案 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);