Как предоставить аутентифицированным пользователям веб-сайта (стандарт App Engine) доступ к корзине Google Cloud Storage? - PullRequest
0 голосов
/ 18 декабря 2018

Я развернул веб-приложение java8 в стандарте Google App Engine.В настоящее время у меня есть интеграция Oauth2, я могу получить адрес электронной почты пользователя, token_id и т. Д. Порядок регистрации пользователей очень стандартный (даже с Oauth2).По сути, пользователь может либо добавить свой адрес электронной почты / пароль, либо зарегистрироваться с помощью входа в Google.У меня есть каталоги и файлы в облачном хранилище Google, к которым я хочу предоставить доступ «аутентифицированным» пользователям.Что означает:

  • a) Если их имя пользователя / пароль совпадают с тем, что у меня есть в базе данных mysql или
  • b) Если я нахожу их учетную запись Google в учетных данных в базе данных db

Я перенаправляю их на сервлет, который представляет все файлы на защищенной веб-странице в виде ссылок, где пользователь может щелкнуть / открыть документы.Я понимаю, как запрашивать авторизацию на ресурсах Google, которыми может владеть пользователь.Что мне нужно знать, так это как мне "предоставить" пользователю (пользователю Google или обычному пользователю, который регистрируется на сайте) доступ к файлам в корзине Google Cloud Storage?

Если я не предоставлю Storage Reader для объекта "allusers "Я получаю:

<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>
Anonymous caller does not have storage.objects.get access to drmath.appspot.com/1a/index.html.
</Details>
</Error>

1 Ответ

0 голосов
/ 18 декабря 2018

Google OAuth не является решением для ваших требований по предоставлению доступа к Google Cloud Storage.Их адрес электронной почты (идентификатор пользователя) необходимо будет добавить в качестве пользователя в ваш облачный IAM Google.

Что вы можете сделать, это создать подписанные URL-адреса.Это URL-адреса с временным доступом, время ожидания которых истекло.Код вашего внутреннего сервера будет генерировать URL-адрес, и пользователь может затем временно получить доступ к объекту облачного хранилища временно.

Ваш внутренний сервер определит, что пользователь авторизован любым способом, который вы хотите, включая использование OAuth, базы данных,и т.д.

Создание подписанных URL-адресов с помощью собственной программы

Подписанные URL-адреса

...