Inloggen: Tomcat, Basic Authenticaten & JAAS

Pagina: 1
Acties:

  • Standeman
  • Registratie: November 2000
  • Laatst online: 18:33

Standeman

Prutser 1e klasse

Topicstarter
We hebben hier een webapp waarvoor gebruikers in moeten loggen om er gebruik van te kunnen maken. Default gebruikt de webapp FORM based authenticaten in combinatie met JAAS om in te kunnen loggen op de Tomcat webapp en alles werkt prima.

Een klant van ons heeft het verzoek gedaan om een soort van single sign on mogelijk te maken voor onze web app dat via de URL werkt. Dus dan krijg je zoiets:

https://server:8443/login?user=<foo>&password=<bar>

Op zich prima en redelijk secure en zij kunnen in hun web portal gewoon een serie links opbouwen welke direct inlogt op onze applicatie.
Gewoon een kwestie van basic authentication en https instellen in tomcat en een javascript schrijven die onder water een http request maakt naar onze server om in te loggen en dan naar de start pagina redirect. (zoals hier wordt gedaan, maar dan een klein beetje anders)
Alles werkt prima en mijn baas is weer happy.

Nu komt de klant (terecht) met de klacht dat hij niet meer uit kan loggen. En dat klopt ook wel, want basic authentication heeft een paar quirks waar ik nog niet van op de hoogte was, namelijk:
Another important problem with basic authentication as currently implemented is that there is no way for a user to log off without exiting the browser. Suppose you have been accessing a site requiring authentication through your web browser. Even if you have moved on to a different site, your web browser still has your login and password cached. So if you leave the computer and someone else tries to access that site, that person will get on right away, without being asked for a login and password. On most operating systems another person wouldn't easily be able to see your password, but as long as your browser is running they could continue to use it.

Neither Netscape nor Internet Explorer offers the user any way to flush authentications out of memory short of exiting the browser. Many web sites suggest to users that they should "exit all browser windows" after they are finished to make sure they are logged off. Even users who remember to do this may fail to notice all windows, including minimized and iconified ones.
bron

Dit maakt dus eigenlijk basic authentication onwerkbaar :/

Ik vroeg me dus af hoe dit probleem opgelost kan worden. Er zullen vast wel mensen hier rondlopen die een SSO oplossing voor hun Tomcat webapp hebben gemaakt.

The ships hung in the sky in much the same way that bricks don’t.


  • Standeman
  • Registratie: November 2000
  • Laatst online: 18:33

Standeman

Prutser 1e klasse

Topicstarter
*kickje*
niemand ervaring hiermee?

The ships hung in the sky in much the same way that bricks don’t.


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 09:47
Zit je in een windows intranet omgeving? maar je zegt web-portals en klanten, dus waarschijnlijk niet.
Dan is single sign-on middels Kerberos ook niet echt een optie.

Want waar je tegenaan loopt is niet een server related probleem, maar een browser related probleem. Bij basic authenticatie wordt er een hashed versie van het password gecached ofzo. Het is hetzelfde mechanisme als wanneer je in een .htaccess file op apache een username/password op een directory zet. Om daar vanaf te komen moet je ook eerst de browser killen.

Je zult dus een mechanisme moeten gebruiken wat via de sessie werkt. Echter ik neem aan dat alle apps niet in 1 server instantie draaien. Dus daar moet je ook een oplossing voor zien te vinden. Er zijn SSO tools te vinden die volledig freeware/opensource zijn. Dat is denk ik je beste optie. Want zoiets van scratch schrijven is echt gekkenwerk. Niet zo moeilijk, maar je bent vaak lekker dan dat je zelf door hebt.

Verwijderd

Kun je niet iets met sessions doen? auto uitloggen nadat sessie gekilled is ofzoiets. Dan kan er toch niet direct meer ingelogd worden?

of heb ik het mis?

  • Standeman
  • Registratie: November 2000
  • Laatst online: 18:33

Standeman

Prutser 1e klasse

Topicstarter
Verwijderd schreef op donderdag 21 december 2006 @ 13:48:
Kun je niet iets met sessions doen? auto uitloggen nadat sessie gekilled is ofzoiets. Dan kan er toch niet direct meer ingelogd worden?

of heb ik het mis?
Nope, zoals The - DDD zegt. browsers cachen de username / pass zolang ze leven. De enige manier om via basic authentication uitgelogd te zijn is door de browser te killen (en dat gaat een beetje lastig vanaf een web-server ;) )

Hmm.. Er zit dan waarschijnlijk toch niets anders op dan een stukje JAAS zelf te implementeren zodat ik met een username/pwd combi in de url gewoon kan inloggen.

The ships hung in the sky in much the same way that bricks don’t.

Pagina: 1