Bekijk Volledige Versie : lidmaatschappen en passwords
Frank van der Pol
22/07/04, 17:05
Hallo allen,
De vraag die ik heb kan haast niet anders dan al eerder voorgekomen
zijn omdat het een in mijn ogen op zichzelf vrij triviaal probleem is,
maar niettemin lijk ik het antwoord ook na langdurig googelen nergens
te kunnen vinden. Alle standaardoplossingen voor toegangsbeheer op
basis van ofwel een database ofwel .htaccess bieden een enorme
beheerskerstboom voor een in mijn ogen in aanleg vrij eenvoudig
probleem.
Stel ik heb een aantal (pakweg 1000) personen, die ieder tot een
zekere groep behoren en die ik, afhankelijk van hun groep, een toegang
wil geven tot bepaalde directories op een site. (En dan bedoel ik een
toegangsniveau, ofwel groep 3 heeft ook toegang tot directories
waartoe groep 2 en 1 toegang toe hebben en groep 2 heeft ook toegang
tot plekken waartoe groep 1 toegang heeft.)
Op zichzelf biedt de Apache webserver manager daar, voor zover ik kan
beoordelen een vrij eenvoudige en (bijna) toereikende handige
interface voor. Maar voor zover ik kan zien biedt het geen batch input
mogelijkheid.
Stel dat ik dat ik dat 'ledenbestand' initieel in een lokale database
heb staan en ik in eerste instantie en daarna na elke mutatie van de
database geheel automagisch, bijvoorbeeld 's nachts i.e. unattended,
de online situatie wil updaten. Bijvoorbeeld door een csv bestand
(lidnummer/username/pass/group) te ftp-en en vervolgens op basis
daarvan nieuwe .htaccess , en .htgroup bestanden aan te laten maken en
daarna het csv bestand weer te deleten.
Ik heb naast Apache webserver manager heel veel prachtige, complexe
beheerstools voor zowel .htaccess of MySQL gebaseerde
toegangsbeveiliging gezien, maar ze lijken geen van alleen een
dergelijke functionaliteit te hebben. Iemand enig idee?
Frank
Daniel Tryba
23/07/04, 01:45
Frank van der Pol <frank@digitalefotografie.com> wrote:
> Stel dat ik dat ik dat 'ledenbestand' initieel in een lokale database
> heb staan en ik in eerste instantie en daarna na elke mutatie van de
> database geheel automagisch, bijvoorbeeld 's nachts i.e. unattended,
> de online situatie wil updaten. Bijvoorbeeld door een csv bestand
> (lidnummer/username/pass/group) te ftp-en en vervolgens op basis
> daarvan nieuwe .htaccess , en .htgroup bestanden aan te laten maken en
> daarna het csv bestand weer te deleten.
>
> Ik heb naast Apache webserver manager heel veel prachtige, complexe
> beheerstools voor zowel .htaccess of MySQL gebaseerde
> toegangsbeveiliging gezien, maar ze lijken geen van alleen een
> dergelijke functionaliteit te hebben. Iemand enig idee?
Simpel scriptje maken en mbv cron laten uitvoeren, een goede groep
hiervoor lijkt me nl.comp.os.linux.programmeren
--
Daniel Tryba
Frank van der Pol
25/07/04, 10:25
Daniel Tryba schreef in bericht <cdpj1m$ad7$1@news.tue.nl>:
> Simpel scriptje maken en mbv cron laten uitvoeren, een goede groep
> hiervoor lijkt me nl.comp.os.linux.programmeren
Dat is wel een heel, heeeeel stil groepje hoor. :-)
Bedankt voor de suggestie in ieder geval. Ik heb 't inmiddels in de
lade 'uitbesteden, want voor ik 't weet moet ik nog meer van dat soort
werk gaan doen' gelegd.
Frank
Daniel Tryba
25/07/04, 23:55
Frank van der Pol <frank@digitalefotografie.com> wrote:
>> Simpel scriptje maken en mbv cron laten uitvoeren, een goede groep
>> hiervoor lijkt me nl.comp.os.linux.programmeren
>
> Dat is wel een heel, heeeeel stil groepje hoor. :-)
Maar wel een goed gelezen groep, op vragen komt vrij snel een zinnig
antwoord.
> Bedankt voor de suggestie in ieder geval. Ik heb 't inmiddels in de
> lade 'uitbesteden, want voor ik 't weet moet ik nog meer van dat soort
> werk gaan doen' gelegd.
Met het schrijven van zulke scripts is niets mis hoor :)
--
Daniel Tryba
Frank van der Pol
26/07/04, 00:56
Daniel Tryba schreef in bericht <ce18ll$qif$1@news.tue.nl>:
> > Bedankt voor de suggestie in ieder geval. Ik heb 't inmiddels in de
> > lade 'uitbesteden, want voor ik 't weet moet ik nog meer van dat soort
> > werk gaan doen' gelegd.
>
> Met het schrijven van zulke scripts is niets mis hoor :)
Hoho, maar dat zeg ik ook niet. Ik denk alleen dat het voor mij
zakelijk gezonder is als iemand anders er relatief weinig tijd aan
b
esteedt dan dat ik er (een) dag(en) over doe om erachter te komen hoe
het moet, het vervolgens in veel te veel tijd zelf ga doen en er dus
veel te weinig geld voor kan vragen en er tegen de tijd dat het nog
een keer voorkomt weer een dag over moet doen om me te herinneren hoe
het ook alweer allemaal moest.
Dat gelt voor anderen ten opzichte van mijn activiteiten ook. Alleen
wil men dat niet altijd geloven. :-)
Frank
Frank van der Pol
26/07/04, 11:25
Frank van der Pol schreef in bericht
<bbd8g0t3m3s811mng1er94u3jchedr8qu1@4ax.com>:
> Dat gelt
uh.. geldt ;-)
Frank
Branko Collin
26/07/04, 13:15
Frank van der Pol wrote:
> De vraag die ik heb kan haast niet anders dan al eerder voorgekomen
> zijn omdat het een in mijn ogen op zichzelf vrij triviaal probleem is,
> maar niettemin lijk ik het antwoord ook na langdurig googelen nergens
> te kunnen vinden. Alle standaardoplossingen voor toegangsbeheer op
> basis van ofwel een database ofwel .htaccess bieden een enorme
> beheerskerstboom voor een in mijn ogen in aanleg vrij eenvoudig
> probleem.
Niet geheel wat je zoekt: PHP biedt met sessies een vrij eenvoudige en
toegankelijke methode om van elke pagina te bepalen of een gebruiker van
een bepaalde categorie er toegang tot heeft.
Weliswaar heb je dan geen directe toegang tot de directory's, maar of je
directorytoegang nu door Apache laat simuleren of door PHP lijkt me weinig
uit te maken, behalve dat het eerste out-of-the-box komt en je het laatste
zelf moet (laten) maken.
Frank van der Pol
26/07/04, 14:05
Branko Collin schreef in bericht
<4104e41f$0$36860$e4fe514c@news.xs4all.nl>:
> Niet geheel wat je zoekt: PHP biedt met sessies een vrij eenvoudige en
> toegankelijke methode om van elke pagina te bepalen of een gebruiker van
> een bepaalde categorie er toegang tot heeft.
Dat klopt. Sterker nog. Het biedt je ook/zelfs aanmerkelijk meer
opties (uitloggen, toegang per document i.p.v. per directory).
> Weliswaar heb je dan geen directe toegang tot de directory's, maar of je
> directorytoegang nu door Apache laat simuleren of door PHP lijkt me weinig
> uit te maken, behalve dat het eerste out-of-the-box komt en je het laatste
> zelf moet (laten) maken.
Jazeker, maar wat blijkt is dat het op het www dus (uiteraard, of
misschien ook helemaal niet uiteraard) wemelt van de 'sophisticated
solutions' op basis van PHP/MySQL die vooral bedoeld lijken te zijn
voor situaties waarin de online database de enige in de wereld is of
in ieder geval de leidende database is omdat men vooral online lid
wordt.
Dit soort zaken lijken zich om d'een of d'andere reden altijd te
gedragen als de aanschaf van een videorecorder of een mobiele
telefoon. Je krijgt altijd tien maal zoveel features als je nodig hebt
waardoor de implementatie en het gebruik van de oplossing soms
complexer wordt dan het probleem zelf.
Het blijkt gewoon niet echt mogelijk om in de kant-en-klare hoek een
eenvoudige standaard functie te kopen die onderdeel is van een soort
groeiplan. Er moet om de een of andere reden altijd meteen een berg
toeters en bellen omheen zitten die je (nu althans nog) helemaal niet
nodig hebt.
Laat ik het zo zeggen: Het lijkt niet echt mogelijk te zijn om dit
soort zaken met online verkrijgbare standaard-tools langs de weg der
geleidelijkheid op te lossen.
Frank
Branko Collin
26/07/04, 15:05
Frank van der Pol wrote:
> Het blijkt gewoon niet echt mogelijk om in de kant-en-klare hoek een
> eenvoudige standaard functie te kopen die onderdeel is van een soort
> groeiplan.
Goh!
Maar (ietsiepietsie) serieuzer: die standaardfunctie heet PHP. Dat is
mogelijk weer net iets te fijnkorrelig voor jou.
Toch moet het niet zo heel erg lastig zijn om een klein index.php-bestandje
te schrijven dat een van zes acties onderneemt:
1) Als ingelogd, maar niet juiste gebruikersniveau, toon een waarschuwing
en eventueel een link naar een directory waar dit gebruikersniveau wel
toegang tot heeft.
2) Als ingelogd, en juiste gebruikersniveau
a) toon inhoud directory
b) of laat bestand downloaden
3) Als niet ingelogd en geen submitknop ingedrukt, toon login-scherm
4) Als niet ingelogd, maar wel submitknop ingedrukt, controleer a.d.h.v. de
database of deze gebruiker bestaat:
a) zo ja, laadt niveau in sessievariabele
b) zo nee, meldt dat en ga terug naar het loginscherm
Dat index.php kun je in elke map gooien (die je afschermt, zodat alleen PHP
erbij kan). De database updaten kan vast met phpmyadmin.
Frank van der Pol
26/07/04, 17:15
Branko Collin schreef in bericht
<4104ff0b$0$35145$e4fe514c@news.xs4all.nl>:
> Maar (ietsiepietsie) serieuzer: die standaardfunctie heet PHP. Dat is
> mogelijk weer net iets te fijnkorrelig voor jou.
Nee, ik doelde eigenlijk op een tool. Niet een taal :-D.
Dus laten we zeggen dat de eindsituatie op enig moment ongetwijfeld
een opgetuigd huis is, maar dat ik voorlopig slechts op zoek ben naar
vier hoge muren en een behoorlijke inbraakbeveiliging, maar dat niet
wil opbouwen met behulp van bakstenen en cement, maar liever met
behulp van prefab elementen en standaardkozijnen met voorgemonteerd
hang- en sluitwerk. ;-)
<snip helder voorbeeld dat op zichzelf voeldoen aan bovenstaande
beschijving, zij het dat het geen prefab woning is. :-) Met dank. >
> De database updaten kan vast met phpmyadmin.
De database updaten kan op zichzelf ongetwijfeld met phpadmin. Maar
volgens mij niet periodiek automagisch. Dat zal dan toch weer met een
periodiek uit te voeren script moeten gebeuren, lijkt me. Zoals in
mijn oorspronkelijke bericht vermeld wordt er namelijk op een lokale
database gemuteerd. En dat betekent dat ik in essentie weer een beetje
terug ben op mijn oorspronkelijke idee en het door Daniƫl gegeven
suggestie, te weten een periodieke ftp van een bestand dat m.b.v. een
scriptje een uurtje later geconverteerd wordt naar actuele .htaccess
en een .htgroups bestanden.
Maar hoe dan ook. Ook de door jou gesuggereerde oplossing (die beslist
aanmerkelijk eleganter is) is voor mij een kwestie van laten doen als
die niet aangeboden wordt in een tussenvorm tussen de al eerder
genoemde kerstboom-oplossingen enerzijds en php als de terecht door
jou gesuggereerde voor mij te grote fijnkorreligheid van .php.
Dat wil zeggen, zodra het veel verder gaat dan "Hello World" :-)
Frank
Frank van der Pol
29/07/04, 13:15
Branko Collin schreef in bericht
<4104ff0b$0$35145$e4fe514c@news.xs4all.nl>:
> 2) Als ingelogd, en juiste gebruikersniveau
>
> a) toon inhoud directory
>
> b) of laat bestand downloaden
<snip>
> Dat index.php kun je in elke map gooien (die je afschermt, zodat alleen PHP
> erbij kan). De database updaten kan vast met phpmyadmin.
Ik heb overigens het idee dat bovenstaande zaken elkaar een beetje
tegenspreken. Want als je de inhoud van de directory toont, dan zijn
dat in feite links naar de zich daarin bevindende bestanden.
Voor de geautoriseerde bezoeker is de inhoud van de directory dan
weliswaar te zien, maar zodra hij op een link klikt, geldt dat het
bestand waarnaar gelinkt wordt ofwel een niet-php bestand is, waardoor
hij er geen toegang toe heeft omdat alleen php toegang heeft, ofwel
het is een .php bestand dat een niet geautoriseerde persoon ook kan
bekijken als hij de directe link weet. Waar ga ik met mijn
gedachtegang de fout in?
Frank