Variabele in httpd + mod_authnz_ldap

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Mr_Big
  • Registratie: Februari 2002
  • Niet online
Om data achter authenticatie te zetten, wil ik mod_authnz_ldap gebruiken om verschillende gebruikersmappen af te schermen. Dat zal zijn in de volgende vorm:
-domein.nl/secure/jaap@ext.com
-domein.nl/secure/piek@dom.nl
-domein.nl/secure/klaas@bla.org

Graag wil ik hiervoor een LDAP-server gebruiken, aangezien daar alle info al instaat.
Het is geen probleem om met een location-directive een locate af te schermen en om het e-mailadres als inlognaam te gebruiken.
Het probleem zit hem erin dat ik jaap@ext.com alleen tot die betreffende map toegang wil verlenen, niet tot de andere mappen.
Als ik '/secure' als '<location>' gebruik, in combinatie met 'Require valid-user' gebruiken, dan kan iedereen in alle submappen na authenticatie
Als ik '/secure/<mailadres>' gebruik, in combinatie met 'Require ldap-user', dan moet ik elke map apart gaan configureren.

Ik hoop dus dat er een soort variabele mogelijk is, waarbij is de location als volgt kan configureren:
<Location /secure/$user_name >

En de 'Require' als:
Require ldap-user $user_name.

Dus als je de map 'domein.nl/secure/jaap@ext.com' bezoekt, moet je inloggen met 'jaap@ext.com'.

Kan zoiets is apache httpd? Of eventueel een andere webserver?

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:26

Hero of Time

Moderator LNX

There is only one Legend

Dit is zeker mogelijk. Denk aan een server waar meerdere mensen hun site hosten, maar ze mogen niet bij elkaar de mappen komen voor uploaden of wijzigen. Dan geef je op dat alle gebruikers in een specifieke map staan en die gebruiker erin mag e.d. Ik ben even de naam kwijt hoe 't heet, maar het maakt een user-based vhost op de map, met een enkele config. Als er een gebruiker bij komt, heeft die automatisch toegang via apache.

Ik check nu ook net even een config die ik een lange tijd geleden gebruikt hebt in wat documentatie en hier staan variabelen in zoals jij noemt, $uid, $user. Maar weet even niet of het placeholders zijn of niet. Het moet iig kunnen en niet al te moeilijk om in te stellen.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Mr_Big
  • Registratie: Februari 2002
  • Niet online
Dat is een interessante benadering, via een vhost per persoon. Hopelijk is dat niet alleen het verleggen van het probleem ;-)
Voor Apache httpd 2.4 kwam ik mod_macro (http://www.cri.ensmp.fr/~coelho/mod_macro/) tegen. Heeft iemand daar ervaringen mee?

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:26

Hero of Time

Moderator LNX

There is only one Legend

Mod_macro, staat toevallig ook in m'n documentatie :P. Op http://www.cri.ensmp.fr/~coelho/mod_macro/ staat uitgelegd hoe je 'm gebruikt. Mocht 't niet helemaal lukken, kan je je config posten, dan vergelijk ik 'm met m'n documentatie.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Mr_Big
  • Registratie: Februari 2002
  • Niet online
Heb de documentatie van mod_mactro nog eens goed bekeken, maar is toch niet helemaal wat ik zoek. Wat er in feite gebeurt, is dat je een template met variabelen opstelt die je later aanroept met de gewenste waarden.
Ik wil alleen een template met variabelen opstellen, maar niet handmatig waarden gaan opgeven.
Mijn idee is dat als een gebruiker 'user1' succesvol kan authenticeren tegen OpenLDAP, hij/zij direct (en alleen!) toegang heeft tot '/secure/user1'. Dat wil zeggen dat de username die wordt gebruikt om te authenticeren tegen OpenLDAP de variabele invult.

Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 22:26

Hero of Time

Moderator LNX

There is only one Legend

Dat is ook wat mod_macro voor je doet. Je authenticeert als user1, deze wordt in LDAP opgezocht en de variabelen $uid, $username e.d. worden door mod_macro toegepast op de vhost config. Ik heb helaas de originele config bestanden niet en ook geen toegang meer toe, anders had ik mod_macro.conf kunnen bekijken.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Mr_Big
  • Registratie: Februari 2002
  • Niet online
Als ik naar het voorbeeld kijk, dan zie ik wat anders:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
## Define a VHost Macro for repetitive configurations
<Macro VHost $host $port $dir>
  Listen $port
  <VirtualHost *:$port>

    ServerName $host
    DocumentRoot $dir

    <Directory $dir>
      # do something here...
    </Directory>

    # limit access to intranet subdir.
    <Directory $dir/intranet>
      order deny,allow
      deny from all
      allow from 10.0.0.0/8
    </Directory>
  </VirtualHost>
</Macro>

## Use of VHost with different arguments.

Use VHost www.apache.org 80 /projects/apache/web
Use VHost www.perl.com 8080 /projects/perl/web
Use VHost www.ensmp.fr 1234 /projects/mines/web


Hier zie ik dat er eerst een template wordt gedefinieerd, waarna die template wordt aangeroepen en voorzien van waarden met "Use ..."
Op zich heel aardige functionaliteit, maar ik wil alleen niet alle gebruikers handmatig gaan definieren. Indien ldap authanticatie = OK, dan krijg je toegang o.b.v. je username. Dat zie ik hiermee niet gebeuren.

[ Voor 11% gewijzigd door Mr_Big op 16-07-2013 18:21 ]

Pagina: 1