[Alg/ASP] Single Sign-on problematiek

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Inleiding:
Ik moet nu aan een site gaan werken waarin een single sign-on principe aangebracht moet worden. Het wordt een portal met verschillende portlets die op verschillende sites en fysiek verschillende servers moeten kunnen staan. We gaan een centrale webservice maken die puur zorgt voor authenticatie (dus niet authorisatie!) van de gebruiker, dus eigenlijk alleen een lijstje van username/password/userid.

:? Een portal?
Kort door de bocht dat is een website die bestaat uit meer dan 1 onderdeel, waarbij de onderdelen (portlets) niet per se van dezelfde website hoeven te komen. Hier wordt communicatie tussen portal en portlet dus een probleem.

:? Single sign-on?
Het is de manier om te voorkomen dat gebruikers overal moeten inloggen waar een service maar authenticatie nodig heeft. Single sign-on moet er dus voor zorgen dat de portal aan de portlets duidelijk kan maken wie de bezoeker is, en de portlet moet dat kunnen verifiëren.

Wat heb ik zelf al bedacht:
De portal zou bij het openen van een portlet een username en wachtwoord aan de URL van de portlet versleuteld kunnen toevoegen. Dit vereist echter een public key encryption en is dus een eventueel beveiligingsgat. Dit is echter wel wat veiliger dan een userid meesturen, omdat het met bovenstaande idee de portlet is, die de userid van de authorisatie-webservice opvraagt.
Cookies behoort ook tot de mogelijkheden, maar zijn wederom een potentiëel beveiligingsgat. Met dat ik niet zeker weet of het ene domein een cookie kan krijgen van het andere domein.
E.e.a. zou nog dichtgetimmerd kunnen worden met een MD5-hash (of iets dergelijks), om het de cracker nog moeilijker te maken, maar feit blijft dat de portlet de login-informatie moet kunnen ontcijferen, en dat kan een cracker dan dus ook als hij de code weet.
Ook is gegeven dat de portlets niet per se de moderne communicatie ondersteunen die we hedendaags kennen. Het meeste dat we van ze eisen, is dat dat ze een webservice kunnen aanspreken (en dat is simpel). We kunnen dus bijv niet de portlet als webservice aanspreken en zeggen "hier komt bezoeker die-en-die", of zoiets.

Wat kunnen we hierop verzinnen?

日本!🎌


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik zit zo een beetje aan het Passport principe van microsoft te denken. Een centrale server die de security van verschillende sites kan doen.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Mjah, ik ook. En in ASP.NET kan je dat makkelijk implementeren.

https://fgheysels.github.io/


  • party42
  • Registratie: Oktober 2000
  • Laatst online: 27-05 13:28
true
ASP.NET is hier erg goed in. Als het mogelijk zou zijn om dit te gebruiken ipv classic ASP zou ik hier zeker naar kijken.

Anders wellicht een mbv md5 een sessie schrijven? (of ga je over meerdere domains?)

Everyday's an endless stream, of cigarettes and magazines...


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Probleem is eigenlijk dat de site die portal moet gaan spelen al in classic ASP geschreven is. En eigenlijk willen we de bezoeker ook niet opdringen om .NET passport te gebruiken (hoe makkelijk het ook moge zijn).

En ja, we gaan over meerdere domeinen, zoals ik al schreef...

日本!🎌


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Het hoeft ook niet echt Passport te zijn, je kunt ook hetzelfde principe toepassen (en gewoon allen het logingedeelte .net maken)

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 26-05 00:01

Janoz

Moderator Devschuur®

!litemod

Kijk ook eens naar liberty alliance. Dat is de open tegenhanger van passport ;).

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1