Direkt zum Inhalt | Direkt zur Navigation

Benutzerspezifische Werkzeuge

Sie sind hier: Startseite / Tech-Blog / Plone: IP-basierter Zugang

Plone: IP-basierter Zugang

Mit Hilfe des AutoRole Plugins kann man für bestimmte IP-Bereiche automatisch Rechte-Rollen vergeben und so Inhalte leicht einer bestimmten Gruppe von Personen zugänglich machen.

Nginx config

Damit wir auf Plone Seite die Externen Absender-IP-Adressen sehen können, müssen wir dem vorgeschalteten Webserver z.B. Nginx mitteilen, dass er entsprechende HTTP-Header setzt.

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;

Zope config Parameter

Da Plone nicht blind jedem Header trauen kann, müssen vertrauenswürdige Proxies in der zope.conf konfiguriert werden. Hierfür fügen wir in unsere Buildout-Konfiguration folgenden Eintrag ein:

zope-conf-additional =
  trusted-proxy 127.0.0.1
  trusted-proxy loadbalancer.lan

AutoRole Konfiguration

Wir installieren das Paket Products.AutoRole und konfigurieren es unter /acl_users/auto_role > Properties wie folgt:

Einzelne IP konfigurieren

192.168.0.100:Authenticated,Member

Greift nur für eine IP Adresse, hier 192.168.1.100. Da wir hier keine Bitmaske angegeben aben, gilt der Default von /32 was exakt eine IP-Adresse zulässt.

IP-Bereich konfigurieren

192.168.0.0/16:Authenticated,Member

Greift für alle IP's die mit 192.168. beginnen, also z.B. 192.168.1.100 oder auch 192.168.56.1. Alternativ könnte man hier mit 192.168.0.0/24 auch nur Adressen von 192.168.0.1 bis 192.168.0.255 zulassen.

Zu Beachten

Das AutoRole Plugin funktioniert zur Zeit nicht mit Products.PluggableAuthService Versionen > 1.8.0! Daher muss dieses in der Buildout-Konfiguration auf 1.8.0 gepinned werden.

abgelegt unter: , , ,