На мой взгляд, у вас есть 3 возможных способа сделать это:
1: Реализация процесса аутентификации
На мой взгляд, это лучший подход, так как вы можете быть уверены, что человек, который должен одобрить процесс, - это тот, кто действительно одобряет его.
Недостаток этого подхода заключается в том, что пользователи должны будут входить в систему, но вы можете реализовать это таким образом, что им редко приходится, например, они могут оставаться в системе в течение одного месяца или дольше.
2: использование ссылки с одноразовым токеном
Это в основном подход, который вы упомянули с доводом "против", о котором вы упомянули, а именно: кто-то может просто переслать письмо, а кто-то другой может одобрить его.
Единственный способ в вашем случае, чтобы это работало, - это если он применяется сверху вниз, так как в управлении может налагаться штраф, если такое электронное письмо отправлено кому-то другому. Но это редко хорошая стратегия, и ее трудно реализовать.
3: утвердить и отклонить ответным письмом
Я думаю, что этот подход может быть наиболее близким к тому, что вы ищете, но как заявление об отказе от ответственности я раньше не проверял нечто подобное.
Вы можете настроить ссылки таким образом, чтобы при щелчке по ним открывался новый почтовый экран с определенными заполненными данными, например, вы могли бы указать тему и адрес, на который отправлять почту.
Пример ссылки: <a href="mailto:approvedisapprove@system.com?Subject=Approve%20%5BIDNumberHere%5D&body=UniqueID%3D123456" target="_top">Approve</a>
Затем в создаваемой системе вам нужно будет отслеживать этот почтовый ящик, а затем анализировать все полученные электронные письма, используя адрес от, чтобы проверить, отправил ли правильный человек письмо.
Большое примечание при таком подходе заключается в том, что адрес отправителя в электронном письме может быть легко подделан, поэтому, если вы хотите использовать этот подход, я бы рекомендовал, по крайней мере, добавить в письмо какой-то случайный токен, который будет быть проверенным на заднем конце.
Даже с уникальным токеном существует другой вектор атаки, хотя это потребует некоторой работы. Допустим, система отправляет письмо Алисе, потому что ей нужно что-то одобрить или не одобрить, она отправляет почту Бобу. Боб не может щелкнуть ссылку и отправить электронное письмо как есть, потому что система увидит, что оно пришло с его адреса электронной почты, но Боб может нажать на ссылку, чтобы увидеть, какой должен быть предмет, а затем подделать сообщение Алисы. электронная почта, используя поддельный сайт. После этого система увидит, что все в порядке, поскольку похоже, что письмо пришло от Алисы.
Пример подмены сайта: https://emkei.cz/