2009-09-19 4 views
5

Я хотел бы спросить, что является распространенным способом обработки ролевой безопасности с помощью Google App Engine, Python?Безопасность на основе ролей с помощью Google App Engine и Python

В app.yaml есть раздел «Логин», но доступными значениями являются только «admin» и «required».

Как вы обычно относитесь к обеспечению безопасности на основе ролей?

  • Создание модели с двумя таблицами: Роли и UserRoles
  • значения импорта для таблицы ролей
  • вручную добавить пользователя в UserRoles
  • Проверьте, если пользователь находится в группе правых ролей

Любая другая идея или любой другой метод обеспечения безопасности на основе ролей, пожалуйста, сообщите нам об этом!

ответ

4

Я бы сделал это, добавив ListProperty для ролей для модели, представляющей пользователей. Список содержит любые роли, которым принадлежит данный пользователь. Таким образом, если вы хотите знать, принадлежит ли данный пользователь к данной роли (я ожидаю, самая обычная операция), это быстрый тест на членство.

Вы можете поместить имена ролей непосредственно в списки в виде строк или добавить слой косвенности другому объекту, указав детали о роли, чтобы было легче изменить детали позже. Но у этого есть время выполнения дополнительной RPC, чтобы получить детали о роли.

Недостаток этого метода возникает, если вы хотите удалить всех пользователей из данной роли или выполнить любую другую глобальную операцию. Я полагаю, вы могли бы отметить роль «удалена», но тогда у вас все еще есть данные, загромождающие все ваши пользовательские модели, пока вы их не очистите вручную. Поэтому мне интересно узнать, что предлагают другие.

+0

+1. Если вы хотите изменить всех пользователей с ролью, вы можете сделать запрос в listproperty так же, как если бы это было обычное свойство, чтобы найти всех пользователей с этой ролью. –

+0

, поэтому это означает, что нет специальных способов борьбы с защитой на основе ролей от GAE с Python? мы все еще должны обрабатывать его вручную? –

+0

Правильно - хотя я не уверен, какое «целевое» решение даже выглядело бы, учитывая широкий спектр потребностей в проверке подлинности. –

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

  • Нет связанных вопросов^_^