Безопасный вход в ваш домен с Google App Engine - PullRequest
9 голосов
/ 12 апреля 2010

Мы начинаем очень большой веб-сервисный проект. Мы пытаемся решить, какую среду хостинга использовать. Мы действительно хотели бы использовать Google App Engine из соображений масштабируемости и избавления от необходимости иметь дело с серверами самостоятельно.

Безопасный вход в систему / регистрация очень важен для нас, так же как и использование нашего собственного домена. Наша целевая аудитория не очень разбирается в компьютерах. По этой причине мы не хотим, чтобы пользователи регистрировались с помощью OpenID, поскольку этого нельзя сделать на нашем сайте. Мы также не хотим заставлять наших клиентов регистрироваться в Google.

Насколько я вижу, мне не повезло. Я надеюсь получить определенный ответ на этот вопрос. Могу ли я иметь зашифрованный вход на наш сайт, доступ к которому осуществляется через наш домен, без необходимости отправлять клиентов на другой сайт для входа (OpenID / Google).

Спасибо.

Ответы [ 4 ]

6 голосов
/ 21 апреля 2010

Самое сложное - обойти проблему с cookie. В то время как вы можете сделать безопасный и настраиваемый вход в систему с https://yourdomain.appspot.com,, вы не можете установить там cookie, который будет работать на http://yourdomain.com.

Вот что я предлагаю:

Когда вам необходимо войти в систему, отправьте его на https://yourdomain.appspot.com.. Если они правильно введут учетные данные, создайте одноразовый токен и поместите его либо в хранилище данных, либо в memcache. Дайте ему жизнь в несколько секунд.

Затем перенаправьте пользователя обратно на http://yourdomain.com/authenticate?token=mytoken (очевидно, подставьте имена соответствующим образом), убедитесь, что токен действителен и не истек, и, если все ясно, установите соответствующие куки и истекайте знак

Я думаю, это сработало бы просто отлично. Надеюсь, это поможет!

4 голосов
/ 23 июля 2012

По состоянию на 27 июня 2012 г. App Engine поддерживает SSL для пользовательских доменов.

http://googleappengine.blogspot.com/2012/06/google-app-engine-170-released-at.html

3 голосов
/ 12 апреля 2010

Ничто не мешает вам создать собственный механизм аутентификации / регистрации с помощью Google App Engine. Единственная проблема заключается в том, что Google App Engine в настоящее время поддерживает только HTTPS через https://yourid.appspot.com, а не в вашем домене Служб Google (т. Е. https://www.foobar.com).. Тем не менее, это для продукта roadmap для дальнейшей поддержки. (SSL для сторонних доменов.) Обратите внимание, также в дорожную карту продукта встроена поддержка OAuth & OpenID.

Обновление: Другой вариант может заключаться в том, чтобы использовать прокси-сервер (например, Apache с mod_proxy) и сопоставить свой домен с прокси-сервером, а затем прокси-сервер может передавать запросы HTTP и HTTPS на Google App Engine. , Запросы могут быть перенаправлены в домен appspot.com за кулисами. На самом деле я этого не делал, но я верю, что это должно сработать. Тем не менее, это даст вам единственную точку отказа на прокси-сервере, которая в основном противоречит цели высокой доступности и масштабируемости Google App Engine. Это определенно будет краткосрочным решением, пока Google не будет поддерживать SSL для сторонних доменов или OpenID.

1 голос
/ 31 марта 2012

В зависимости от того, может ли ваша модель угроз принять незашифрованную ссылку в «последнем прыжке» на GAE, вы можете использовать прокси для обработки SSL из браузера. Вот руководство, которое я написал об использовании CloudFlare для получения всегда включенного SSL:

http://blorn.com/post/20185054195/ssl-for-your-domain-on-google-app-engine

По своей структуре это ничем не отличается от того, как будет работать SSL от Google, просто SSL, предоставляемый Google, будет прерываться в сети G, а не только за ее пределами. Если вы пытаетесь защитить от Firesheep, CloudFlare (или любой другой SSL-прокси) подойдет. Если вас беспокоит отслеживание магистрального соединения между CF и Google, вам может потребоваться более сложное решение.

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