Предоставление пользователю секрета, который сервер не может увидеть - PullRequest
0 голосов
/ 02 марта 2019

Предположим, что код на стороне браузера является доверенным для веб-сайта: веб-интерфейс является статическим веб-сайтом, имеет открытый исходный код, а загруженные файлы регулярно проверяются.Он не отправляет данные на сервер.Ради этого аргумента просто предположим, что загруженные файлы и сценарии не изменяются злонамеренно сервером ресурсов (Сервер A).

Теперь я являюсь другим сервером (Сервер B) и хочупредоставить пользователю на этом веб-сайте секрет, например, токен доступа OAuth или JWT, чтобы пользователь мог отправлять запросы на сервер B с веб-сайта сервера A.Я бы предпочел, чтобы секрет не был виден серверу ресурсов (Сервер A).

Есть ли способ передать секрет пользователю с помощью перенаправления или каким-либо другим способом, не показывая егоСервер A?

Я могу спроектировать Сервер A и Сервер B, единственное требование безопасности состоит в том, чтобы Сервер A не мог видеть секреты, которые Сервер B передает пользователю веб-сайта Сервера A.

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Обратитесь к OAuth2 «неявному потоку», где сервер авторизации напрямую передает маркер доступа браузеру в хэш-фрагменте URL.Хеш-фрагменты никогда не отправляются на внутренний сервер.Однако «неявный поток» не так защищен, как поток «кода авторизации».

0 голосов
/ 02 марта 2019

Возможно, можно создать плагин для браузера для решения подобных задач.OAuth-сервер может ассоциировать токен с идентификатором сеанса на стороне сервера (вероятно, хранить его в дБ).При получении запроса с токеном oauth сервер проверяет, находится ли тот же токен в сеансе.

...