Существует ли API Google REST для вызова «другого» пользователя, чтобы доказать, что у него есть доступ к учетной записи Google? - PullRequest
0 голосов
/ 01 мая 2020

Я написал настольное веб-приложение для одноранговых виртуальных игр на стороне клиента. Пользователи входят в нее, используя свою учетную запись Google (используя oAuth через библиотеку GAPI javascript), которая работает нормально.

Затем клиенты подключаются друг к другу через WebRT C и обмениваются информацией, включая заявив, что они такие-то и такой-то пользователь. Когда подключается удаленный узел, я хотел бы иметь возможность проверить идентичность Google, которую удаленный узел утверждает, что он вошел в систему как.

Мне интересно, есть ли уже существующий механизм, встроенный в Google? API REST, которые позволят двум клиентам безопасно и надежно проверить заявленные личности друг друга (предположительно, посредством некоторого совместного танца «вызов-ответ»).

Я мог бы попросить клиентов обменять свои id_token (согласно документация для входа на бэкэнд-сервер ), но эта утечка id_token всем остальным. Взломанный клиент может пересылать любые id_token s, которые он получает, другим партнерам, маскируясь под другого пользователя (пока не истечет время истечения.)

Поскольку мое веб-приложение имеет область действия drive.file oAuth, я мог бы вместо этого реализовать что-то самостоятельно с помощью Google Drive - каждый клиент может сгенерировать пару ключей, сохранить ключ publi c в файле Google Drive, который доступен для чтения всему миру, и затем сообщить всем одноранговым узлам, которые подключаются, об идентификаторе файла Drive ключа publi c , Клиент может проверить исправность идентификатора файла, а затем использовать Drive API для получения ключа publi c, а также владельца файла Drive из метаданных файла. Если удаленный узел может доказать, что ему известен закрытый ключ, соответствующий общедоступному ключу publi c, мой клиент может узнать, что удаленный узел является тем же пользователем, что и владелец ключа диска publi c. .

Однако я бы предпочел использовать то, что уже существует, если это возможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...