EDV:WebSeitenEditieren/Zugriffskontrolle: Difference between revisions

From KIP Wiki
⧌kip-jumptonavigation⧜⧌kip-jumptosearch⧜
No edit summary
 
(9 intermediate revisions by 2 users not shown)
Line 5: Line 5:
Der Zugriffsschutz bezieht sich dabei immer auf Verzeichnisse.
Der Zugriffsschutz bezieht sich dabei immer auf Verzeichnisse.
NÀheres können Sie unter
NÀheres können Sie unter
http://httpd.apache.org/docs/2.0/howto/htaccess.html
https://httpd.apache.org/docs/2.4/howto/access.html
nachlesen
nachlesen


Line 11: Line 11:


Sie können den Zugriff auf bestimmte Netzbereiche einschrÀnken:
Sie können den Zugriff auf bestimmte Netzbereiche einschrÀnken:
Dazu gibt es die Anweisung 'require'. Also z.B.
require ip 129.206.0.0/16
Wenn es mehrere erlaubte Bereiche geben soll, hilft 'RequireAny'

Beispiel: Zugriff nur von innerhalb der Uni
<RequireAny>
require host .uni-heidelberg.de
require ip 129.206.0.0/16
require ip 147.142.0.0/16
</RequireAny>
Es kann auch sein, dass zusÀtzlich zu dieser Bedingung auch eine andere noch
erfĂŒllt sein muss (z.B. ein erlaubter Benutzer). Dann hilft 'RequireAll'.
Das kann auch in Kombination mit 'RequireAny' benutzt werden.

Hier ein Beispiel:
<RequireAll>
require user weis gast besucher
<RequireAny>
require host .uni-heidelberg.de
require ip 129.206.0.0/16
require ip 147.142.0.0/16
</RequireAny>
</RequireAll>
In diesem Fall ist der Zugriff nur fĂŒr die Nutzer weis, gast und besucher
gestattet und auch nur, wenn sie von innerhalb der Uni anfragen.


Die alte Methode (Apache 2.0) funktioniert noch, weil der KompatibilitÀtsmodus aktiviert ist:
<Limit GET>
<Limit GET>
deny from all
deny from all
Line 32: Line 60:
AuthBasicProvider ldap
AuthBasicProvider ldap
AuthBasicAuthoritative On
AuthBasicAuthoritative On
AuthUserFile /dev/null
AuthzLDAPAuthoritative Off
AuthLDAPURL ldap://ldap.kip.uni-heidelberg.de/ou=people,dc=kip.uni-heidelberg,dc=de?uid?sub?(objectClass=KIPUserObject)
AuthLDAPURL ldap://ldap.kip.uni-heidelberg.de/ou=people,dc=kip.uni-heidelberg,dc=de?uid?sub?(objectClass=KIPUserObject)
Line 44: Line 70:
der vom Webserver gelesen werden kann.
der vom Webserver gelesen werden kann.


Beispiel : /afsuser/weis/public_html/.htpasswd
Beispiel : /afs/kip/user/weis/public_html/.htpasswd


Die Passwortdatei können Sie selbst erzeugen:
Die Passwortdatei können Sie selbst erzeugen:
(Zum Beispiel von kip1 aus)
(Zum Beispiel von kip1 aus)
> htpasswd -c /afsuser/weis/public_html/.htpasswd gast1
> htpasswd -c /afs/kip/user/weis/public_html/.htpasswd gast1
New password:
New password:
Re-type new password:
Re-type new password:
Line 54: Line 80:
Mit htpasswd2 kann das Passwort verÀndert bzw.
Mit htpasswd2 kann das Passwort verÀndert bzw.
weitere Benutzer angelegt werden:
weitere Benutzer angelegt werden:
> htpasswd -b /afsuser/weis/public_html/.htpasswd Student MELecture
> htpasswd -b /afs/kip/user/weis/public_html/.htpasswd Student MELecture
Adding password for user Student
Adding password for user Student


> cat /afsuser/weis/public_html/.htpasswd
> cat /afs/kip/user/weis/public_html/.htpasswd
gast1:xjNSN5Vx3dDt2
gast1:xjNSN5Vx3dDt2
Student:ow1i0zkBsTf8I
Student:ow1i0zkBsTf8I
Line 69: Line 95:
AuthBasicProvider file
AuthBasicProvider file
AuthBasicAuthoritative On
AuthBasicAuthoritative On
AuthUserFile '''/afsuser/weis/public_html/.htpasswd'''
AuthUserFile '''/afs/kip/user/weis/public_html/.htpasswd'''
require valid-user
require valid-user
Line 75: Line 101:
# require user gast1 entwickler3
# require user gast1 entwickler3


== Kombination ==
== Kombination : LDAP und IP-Bereiche ==

ACHTUNG: dies ist die '''alte Methode''' (Apache 2.0)


Wenn Sie die zwei Methoden kombinieren möchten, d.h.
Wenn Sie die zwei Methoden kombinieren möchten, d.h.
Line 87: Line 115:
AuthBasicAuthoritative On
AuthBasicAuthoritative On
AuthUserFile /dev/null
AuthUserFile /dev/null
AuthzLDAPAuthoritative Off
AuthLDAPURL ldap://ldap.kip.uni-heidelberg.de/ou=people,dc=kip.uni-heidelberg,dc=de?uid?sub?(objectClass=KIPUserObject)
AuthLDAPURL ldap://ldap.kip.uni-heidelberg.de/ou=people,dc=kip.uni-heidelberg,dc=de?uid?sub?(objectClass=KIPUserObject)
Line 98: Line 125:
allow from .uni-heidelberg.de
allow from .uni-heidelberg.de
</Limit>
</Limit>
Und falls Sie möchten, dass beide Bedingungen erfĂŒllt sein mĂŒssen. D.h. Zugriff aus der Uni-Heidelberg '''UND''' authentifiziert ĂŒber den KIP-Account,
dann ersetzen Sie ''satisfy any'' durch ''satisfy all''.

== Kombination : LDAP und selbst definierte Accounts ==

Ein Beispiel:

Zugriff nur fĂŒr die LDAP-Accounts 'weis' und 'voerg' und fĂŒr den selbst definierten Account 'gast1':

Die zugehörige htpasswd-Datei wurde so wie oben erklÀrt erzeugt.
AuthType Basic
AuthName "protected area please use your KIP Account"
AuthBasicProvider ldap file
AuthBasicAuthoritative On
AuthUserFile '''/afs/kip/user/weis/public_html/.htpasswd'''
AuthLDAPURL ldap://ldap.kip.uni-heidelberg.de/ou=people,dc=kip.uni-heidelberg,dc=de?uid?sub?(objectClass=KIPUserObject)
require user weis voerg gast1

Latest revision as of 09:23, 21 February 2017

Zugriffskontrolle auf KIP-Webseiten

Den Zugriff auf bestimmte Bereich im Web können Sie mit Hilfe der .htaccess-Dateien einschrÀnken. Der Zugriffsschutz bezieht sich dabei immer auf Verzeichnisse. NÀheres können Sie unter https://httpd.apache.org/docs/2.4/howto/access.html nachlesen

EinschrÀnkung auf IP-Bereiche

Sie können den Zugriff auf bestimmte Netzbereiche einschrÀnken: Dazu gibt es die Anweisung 'require'. Also z.B.

require ip 129.206.0.0/16

Wenn es mehrere erlaubte Bereiche geben soll, hilft 'RequireAny'

Beispiel: Zugriff nur von innerhalb der Uni

<RequireAny>
  require host .uni-heidelberg.de
  require ip 129.206.0.0/16
  require ip 147.142.0.0/16
</RequireAny>

Es kann auch sein, dass zusĂ€tzlich zu dieser Bedingung auch eine andere noch erfĂŒllt sein muss (z.B. ein erlaubter Benutzer). Dann hilft 'RequireAll'. Das kann auch in Kombination mit 'RequireAny' benutzt werden.

Hier ein Beispiel:

<RequireAll>
  require user weis gast besucher
  <RequireAny>
    require host .uni-heidelberg.de
    require ip 129.206.0.0/16
    require ip 147.142.0.0/16
  </RequireAny>
</RequireAll>

In diesem Fall ist der Zugriff nur fĂŒr die Nutzer weis, gast und besucher gestattet und auch nur, wenn sie von innerhalb der Uni anfragen.


Die alte Methode (Apache 2.0) funktioniert noch, weil der KompatibilitÀtsmodus aktiviert ist:

<Limit GET>
deny from all
allow from .uni-heidelberg.de
</Limit>

oder auch

<Limit GET>
deny from all
allow from 129.206.0.0/255.255.0.0
allow from 147.142.0.0/255.255.0.0
</Limit>

Zugriff nur fĂŒr KIP-Accounts

Hier nun ein Beispiel fĂŒr eine .htaccess-Konfiguration, mit der man erreichen kann, dass Web-Bereiche nur fĂŒr KIP-Accounts abrufbar sind:

AuthType Basic
AuthName "protected area please use your KIP Account"

AuthBasicProvider ldap
AuthBasicAuthoritative On
AuthLDAPURL ldap://ldap.kip.uni-heidelberg.de/ou=people,dc=kip.uni-heidelberg,dc=de?uid?sub?(objectClass=KIPUserObject)

require valid-user

Zugriff nur fĂŒr selbst definierte Accounts

Sie können sich aber auch selbst eine Passwort-Datei anlegen, die fĂŒr die Authentifikation benutzt wird. Achten Sie bitte darauf, dass die Passwortdatei in einem Bereich gespeichert ist, der vom Webserver gelesen werden kann.

Beispiel : /afs/kip/user/weis/public_html/.htpasswd

Die Passwortdatei können Sie selbst erzeugen: (Zum Beispiel von kip1 aus)

> htpasswd -c /afs/kip/user/weis/public_html/.htpasswd gast1
New password:
Re-type new password:
Adding password for user gast1

Mit htpasswd2 kann das Passwort verÀndert bzw. weitere Benutzer angelegt werden:

> htpasswd -b /afs/kip/user/weis/public_html/.htpasswd Student MELecture
Adding password for user Student
> cat /afs/kip/user/weis/public_html/.htpasswd
gast1:xjNSN5Vx3dDt2
Student:ow1i0zkBsTf8I

Weitere Infos zu htpasswd gibt es mit 'man htpasswd'

Die .htaccess-Datei sieht dann so aus:

AuthType Basic
AuthName "protected area please give your Password"

AuthBasicProvider file
AuthBasicAuthoritative On
AuthUserFile /afs/kip/user/weis/public_html/.htpasswd
 
require valid-user
# oder auch
# require user gast1 entwickler3

Kombination : LDAP und IP-Bereiche

ACHTUNG: dies ist die alte Methode (Apache 2.0)

Wenn Sie die zwei Methoden kombinieren möchten, d.h. freier Zugriff aus bestimmten Bereichen, sonst aber nur mit Angabe des KIP-Accounts, dann sieht das so aus:

AuthType Basic
AuthName "protected area please use your KIP Account"

AuthBasicProvider ldap
AuthBasicAuthoritative On
AuthUserFile /dev/null
AuthLDAPURL ldap://ldap.kip.uni-heidelberg.de/ou=people,dc=kip.uni-heidelberg,dc=de?uid?sub?(objectClass=KIPUserObject)

require valid-user

satisfy any

<Limit GET>
deny from all
allow from .uni-heidelberg.de
</Limit>

Und falls Sie möchten, dass beide Bedingungen erfĂŒllt sein mĂŒssen. D.h. Zugriff aus der Uni-Heidelberg UND authentifiziert ĂŒber den KIP-Account, dann ersetzen Sie satisfy any durch satisfy all.

Kombination : LDAP und selbst definierte Accounts

Ein Beispiel:

Zugriff nur fĂŒr die LDAP-Accounts 'weis' und 'voerg' und fĂŒr den selbst definierten Account 'gast1':

Die zugehörige htpasswd-Datei wurde so wie oben erklÀrt erzeugt.

AuthType Basic
AuthName "protected area please use your KIP Account"

AuthBasicProvider ldap file
AuthBasicAuthoritative On
AuthUserFile /afs/kip/user/weis/public_html/.htpasswd
AuthLDAPURL ldap://ldap.kip.uni-heidelberg.de/ou=people,dc=kip.uni-heidelberg,dc=de?uid?sub?(objectClass=KIPUserObject)

require user weis voerg gast1