Я хотел бы иметь отображение пользователей на счета, а затем пользователи, направленные на имен, соответствующих их счет.Безопасного использование GAE приложение имена
Взглянув на appengine_config.py
из suggested example, там, кажется, несколько предлагаемых способов определить, что пространство имен должно быть, т.е.
- имя сервера
- Служб Google домена
- Cookie
Я бы хотел, чтобы пространство имен было выбрано на основе поиска в хранилище данных. т.е.
namespace = user.account.name
В течение некоторого user
объекта, который связан с account
, на счету которого имеет name
поле. Там область несколько способов, я положенный выполнить это:
- датастор поиска по каждому запросу
- поиска по кэшу памяти каждого запросу (возврат к DATASTORE, когда истекает Memcache)
- безопасных данные печений
Поиск хранилища данных будет медленным. Есть ли такая резервация с поиском memcache? например memcache.get('nslookup:%s' % user_id)
, с учетом user_id
. (Я уверен, что объект users
работает, как и ожидалось, в appengine_config.py
).
В качестве альтернативы, для решения этой проблемы можно использовать безопасный файл cookie. Я не удовлетворен безопасностью флага «Безопасный» (то есть форсированием SSL). Однако я не уверен, как лучше всего защитить данные в cookie. Я полагаю, что симметричный encryption с подписанием с PyCrypto с использованием секретного ключа в GAE является одним из способов начать работу по этому пути. Хотя этот шаблон был vetted, я был бы признателен за любые мысли по этому предлагаемому решению в частности.
Безопасное печенье не кажется лучшим маршрутом с идеальной точки зрения; Я уже ожидаю иметь идентификатор пользователя, все, что мне нужно, - это сопоставление от пользователя к их учетной записи - нет логической основы для шифрования, отправки, хранения, получения и дешифрования этого сопоставления при каждом запросе. Параметры memcache кажутся лучшими из трех, но я был бы благодарен за мысли и вклад. Единственная причина, по которой я могу использовать безопасные файлы cookie, - это производительность, или, альтернативно, если доступ к memcache был недоступен в appengine_config.py
.
Мысль и вклад в мои предположения приветствуются.
Благодарим вас за чтение.
Brian
Что вы используете для поиска записи в хранилище данных? И какое пространство имен есть _that_ запись? Кроме того, вы уверены, что каждый пользователь должен получить доступ к своим собственным данным? Если пользователи обычно читают или записывают данные, доступные другим пользователям, пространство имен для каждого пользователя может быть не лучшим вариантом. –
@Nick Johnson: Я еще не решил, что использовать для поиска записи в хранилище данных (предполагая, что это будет так, как я предполагаю); он должен быть в пространстве имен «master». Пространства имен не предназначены для каждого пользователя, а для каждой учетной записи (т. Е. Наборов пользователей). Доступ через кросс-аккаунт будет обрабатываться прокси-запросами. –
Мое мнение состояло в том, что если у вас есть способ создать ключ для поиска записи в хранилище данных, вы можете просто использовать это значение в качестве имени пространства имен вместо того, чтобы выполнять поиск. И «прокси-запросы», надеюсь, вы не имеете в виду делать запрос к себе, используя urlfetch - вместо этого вы можете просто изменить пространство имен по умолчанию внутри запроса! –