Выдавать себя за другого пользователя, используя Java REST API, какая-то идея - PullRequest
0 голосов
/ 29 января 2020

Мы разрабатываем веб-приложение java, которое использует провайдера аутентификации нашей компании в качестве хранилища пользователей.

Итак, наша потребность в том, чтобы дать администратору возможность входа в приложение с помощью «глаза» другого пользователя, как это делают некоторые известные приложения (Facebook, если я хорошо помню)

Например, если я суперадмин и я решил войти в систему как «someuser», который является базовым пользователем, Я увижу ограниченную версию панели инструментов.

Мы используем REST API в нашем бэкэнд-приложении, и мы не хотим помещать пользовательскую информацию в метод подписи API, потому что при каждом запросе мы возьмите эту информацию из маркера cook ie, который сопоставлен с нашим поставщиком аутентификации.

Итак, вот подпись:

GET /me    -- retrieve logged user information (according to passed token)
GET /me/permissions -- retrieve logged user permissions (as above)

Теперь идея получения информации о другом пользователе добавить заголовок Speci c к каждому запросу, проверяемому ТОЛЬКО, если я супер администратор.

Например,

 GET /me -H "User: foo"

Внутренне, бэкэнд сначала проверит, зарегистрирован ли использование r - супер-администратор, а затем извлекает информацию о пользователе "foo", например, если foo зарегистрирован как сам; кроме того, нет необходимости передавать пользователя в методе подписи, который был бы избыточным или, что еще хуже, бесполезным, если бы я вошел в систему как 'foo'.

Что вы думаете об этой парадигме? Есть ли другой механизм, который соответствует нашим потребностям?

...