Вызов API ServiceNow Rest с использованием расширения Chrome - PullRequest
0 голосов
/ 10 января 2019

Как можно выполнить приведенный ниже запрос с «пользователем B», войдя в систему как «пользователь A» и не выходя из сеанса «пользователь A»?

     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» - это общая учетная запись с разрешениями на выполнение вызовов API, которых не имеет «Пользователь А».

1 Ответ

0 голосов
/ 13 января 2019

Это возможно только if (пользователь A имеет роль администратора) или (пользователь A имеет роль подражателя && пользователь B не является администратором)

1) Если пользователь A имеет роль администратора, он может напрямую инициировать любые REST-запросы, если к целевой таблице разрешен доступ.

2) Если пользователь A имеет роль подражателя, то вы можете подражать любому сеансу пользователей, кроме пользователей-администраторов. Следующая строка скрипта может быть использована для олицетворения пользователя B в сеансе пользователя A и последующего запуска требуемого API как пользователя B

.

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);  
...