Есть ли способ заставить второго пользователя авторизовать действие, если вошедший в систему пользователь не увидит его данные в заголовке запроса? - PullRequest
0 голосов
/ 17 марта 2020

Странная ситуация, с которой я не могу найти других людей, с которыми приходится иметь дело. Мы используем Microsoft AspNetCore.Identity для обработки нашей аутентификации. Все работает нормально. Проблема заключается в том, что для выполнения определенных действий пользователь ДОЛЖЕН заставить другого пользователя «подписать» это действие. Этот акт подписания, конечно, требует, чтобы другой пользователь использовал свое имя пользователя и пароль для подписи действия. Проблема заключается в том, что данные другого пользователя легко видны в полезной нагрузке запроса. Так что, если я подлый, я могу открыть инструменты разработчика в своем браузере (и скрыть его), затем попросить моего администратора прийти и подписать мое действие, и когда они уйдут, я могу go перейти на вкладку сети и увидеть их имя пользователя и войдите в виде простого текста! Конечно, это все по https, но тем не менее, мы не можем позволить одному пользователю видеть конфиденциальную информацию другого. Как мы можем позволить второму пользователю B «подписать» действие для пользователя А, когда он находится в активном сеансе пользователя А, при этом удаляя возможность для пользователя А украсть учетные данные пользователя В ??? Любые идеи? (Передний конец angular. js)

Ответы [ 4 ]

0 голосов
/ 20 марта 2020

Обычно это обрабатывается для пользователя, чтобы запросить действие. Этот (неподписанный) action-запрос заносится в базу данных. Пользователь с правами администратора может увидеть этот неподписанный запрос в своей учетной записи и сделать (аутентифицированный) запрос на его подпись. Пользователь сможет увидеть состояние своего запроса и подписано ли оно еще.

0 голосов
/ 17 марта 2020

Я второй ответ @ justcompile, если вам нужен авторизованный и аутентифицированный пользователь для подписи / подтверждения действия, дополнительная работа, но единственный безопасный способ.

Если вам просто нужна вторая пара глаз, чтобы подтвердить, что вы можете сообщение частной группе или свободному каналу, доступ к которому имеют только «авторизованные» пользователи с одноразовым URL-адресом, содержащим токен (срок действия которого также может истечь через некоторое время).

Предполагая, что администраторы имеют доступ только к тому каналу, по которому они могут перейти по ссылке, приложение может проверить токен и подтвердить действие.

Сохраняет второго (администратора) пользователя, выполняющего вход на свою собственную машину, и необходимо создать рабочий процесс и пользовательский интерфейс и т. д. c, но опять же подвергает вас риску, если злонамеренные типы получат доступ к каналу или к отправленным ссылкам.

Зависит от вашего аппетита к риску, я полагаю.

0 голосов
/ 18 марта 2020

другой пользователь выполняет действие подписи в вашей локальной системе? а ты хитрый? нет возможности защитить их пароль.

использовать двухфакторную аутентификацию.

0 голосов
/ 17 марта 2020

Я полагаю, что это большая переделка, но вместо того, чтобы "admin" подписывал запрос на компьютере пользователя, администратор мог получить "user A требует, чтобы это действие было подписано, продолжить? [Ok] [отменить]" по их мнению, действие будет храниться в базе данных (возможно, временно?), а затем вся конфиденциальная информация будет храниться в сеансе каждого пользователя без каких-либо переходов.

Тогда аутентификация того, кому разрешено утверждать действия, может быть обработана в бэкэнде с помощью стандартных методов идентификации.

Модал пользователя «Пожалуйста, подождите, пока администратор подпишет это действие» (предположение) может затем опросите API, чтобы определить статус действия, а затем продолжите работу после его принятия.

...