Каков наилучший способ создания частного сайта Plone? - PullRequest
4 голосов
/ 16 июня 2011

Я хотел бы знать все решения и оставить только лучшее, чтобы «закрыть сайт каждому анонимному пользователю». Анонимный пользователь должен иметь только форму входа.

Существующие способы:

  • с использованием безопасности zope (удалите разрешение на просмотр анонимного пользователя на корневом сайте)
  • с использованием рабочих процессов (изменение отображения безопасности опубликованного состояния)
  • с использованием apache в прокси с http auth

Есть ли другие решения? Какой самый лучший?

Примечание: у меня возникла проблема при попытке использовать zope security, даже если форма входа не была доступна, поэтому, пожалуйста, немного опишите, как этого добиться.

Ответы [ 5 ]

5 голосов
/ 16 июня 2011

Я бы использовал http://pypi.python.org/pypi/iw.rejectanonymous. Он добавляет пользовательский хук обхода на сайт Plone и разрешает доступ только к форме входа и ресурсам, которые используются для анонимных пользователей.

Имейте в виду, чтов этом случае вы не можете кэшировать какие-либо страницы или списки в кэше внешнего интерфейса, так как это было бы доступно без аутентификации.Кэширование CSS, JS и графических ресурсов в Varnish все еще является хорошей идеей, и вы можете кэшировать вещи в кеше браузера.

1 голос
/ 17 июня 2011

Мой подход к этому варианту использования был (и остается) всегда иметь дело с рабочими процессами.

Начните настраивать «рабочий процесс в интрасети», а затем уберите все опции для анонимных.Затем дайте аутентифицированным (или членам) привилегии, которые вы хотите.

Не нужно дополнительного кода.Нет необходимости дополнительного продукта.Не требуется внешняя настройка.

Только мощность Plone.

0 голосов
/ 16 июня 2011

Вы также можете использовать плагин WebServerAuth, чтобы пользователям был разрешен доступ только через базовую аутентификацию.http://plone.org/products/webserverauth

Таким образом, по умолчанию вы можете защитить все на сайте, не беспокоясь о формах входа в систему.

0 голосов
/ 16 июня 2011

Если вы уже используете виртуальный хост с Apache, я бы использовал mod_rewrite, чтобы обеспечить это. Следующая конфигурация направит всех неаутентифицированных пользователей в форму входа в систему, а также позволит пользователям использовать процесс забытого пароля. Я уже проверял это с Plone 4.1, я думаю, что это также будет работать с Plone 4.0

RewriteCond %{HTTP_COOKIE} !__ac=.*
RewriteCond %{REQUEST_URI} !^/acl_users/credentials_cookie_auth/require_login$
RewriteCond %{REQUEST_URI} !/login_form$
RewriteCond %{REQUEST_URI} !/login$
RewriteCond %{REQUEST_URI} !/logged_out$
RewriteCond %{REQUEST_URI} !^/portal_css/
RewriteCond %{REQUEST_URI} !^/portal_javascripts/
RewriteCond %{REQUEST_URI} !^/login.js$
RewriteCond %{REQUEST_URI} !^/logo.png$
RewriteCond %{REQUEST_URI} !^/mail_password_form$
RewriteCond %{REQUEST_URI} !^/mail_password$
RewriteCond %{REQUEST_URI} !^/portal_registration/passwordreset/
RewriteCond %{REQUEST_URI} !^/pwreset_form$
RewriteCond %{REQUEST_URI} !^/pwreset_finish$
RewriteRule ^(.*) /acl_users/credentials_cookie_auth/require_login?came_from=%{REQUEST_URI} [last,redirect=temp]
0 голосов
/ 16 июня 2011

Однажды я защитил сайт Plone, чтобы только авторизованные пользователи могли видеть что-либо (форма входа в систему). был доступен). Это был Plone 2.5, и я знаю, что я изменил (проверенные / непроверенные роли) эти разрешения на странице ZMI для доступа корня Plone Site (manage_access):

  • Добавить участника портала
  • Разрешить отправку
  • Изменить события портала
  • Изменить содержимое портала
  • Установить собственный пароль
  • Установить собственные свойства
  • Посмотреть

Я знаю, что в следующих версиях Plone были добавлены новые разрешения, поэтому вам может понадобиться настроить другие.

Я думаю, что самый простой способ достичь того, что вам нужно, это сделать, хотя я бы рекомендовал использовать GenericSetup, а не настройку TTW, как я это сделал:

  • Это проще, чем изменять опубликованное состояние рабочих процессов.
  • Если вы настраиваете Apache, вам потребуется двойной вход (для доступа к форме входа и затем для входа в Plone). Если вы не установите специальный плагин PAS. Этот подход, на мой взгляд, сложнее моего.

Но, учитывая, что я не пробовал ни одного из этих двух последних вариантов, я не могу сказать, что мой путь - это . Я могу просто сказать, что это сработало для меня, и, надеюсь, это сработает для вас.

...