5

Я понимаю, как работает процесс авторизации с Oauth, но каким-то образом можно авторизовать мой доступ к API конечных точек без необходимости входа в систему? Поэтому я пытаюсь ограничить доступ к моему API, чтобы доступ к нему имел только определенные веб-сайты, которые я разрешаю, и другие.Авторизовать конечные точки Google Cloud API без входа пользователя

В консоли Google API я создал «идентификатор клиента для веб-приложений».

+0

Кому (или что) будет делать запросы? Это человек или другая программа? –

+0

Что вы подразумеваете под «конечными точками Google Cloud»? Вы имеете в виду Cloud Storage? Или Cloud SQL? Или вы просто имеете в виду конечные точки AppEngine для вашего собственного API? –

+0

@JudeOsborn Google Cloud Endpoints - функция GAE (с ее собственным тегом, который вы видите здесь). Проверьте [docs] (developers.google.com/appengine/docs/python/endpoints/). – bossylobster

ответ

1

В вашем описанном варианте использования предпочтительным решением является для использования OAuth. Следуя приведенным в документации примерам, вы будете ограничивать веб-сайты (через значение «исходное значение JavaScript» для ключей, полученных в консоли API).

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

+0

Спасибо, что нашли время ответить. Я понимаю, что если я хочу ограничить, кто может получить доступ к API конечных точек, моим пользователям придется подписать с помощью Google +, и другого выхода нет. Но мне это действительно не нужно. Итак, теперь я пытаюсь сделать свою собственную функцию аутентификации веб-сайта, который звонит. Как я могу получить имя сервера веб-сайта, которое вызвало вызов API? Я просмотрел класс WebOb Request, но он, похоже, не работает с конечными точками-прото-хранилищем (я следую за вашим и учебником Danny Hermes). –

+1

Дэн, я не думаю, что это отвечает на его вопрос. Gezim не нуждается в аутентификации клиента, и ему также не требуется авторизация клиента. Поэтому никаких запросов пользователю. Я думаю, ему нужен безопасный доступ к его серверу и никто не сможет получить доступ к его серверу. Самое близкое, что я могу найти, это учетные записи служб, но я не вижу документации о том, как ее реализовать на стороне сервера. Похоже, он работает только с API Google. – mixmasteralan

+0

@mixmasteralan, спасибо за разъяснение. Это верно. –

Смежные вопросы