Centralizuota autentikacija

Posted by Saulius Grigaitis 28/04/2007 at 22h17

Sveiki. Vienas dalykas, kuris nuolat mane žavi dirbant su Ruby ir Rails, tai kalnai kokybiško ir naudingo kodo, kuriuo gana lengva pasinaudoti. Šįkart trumpai apie centralizuotą autentikacijos servisą(CAS). CAS - servisas, suteikiantis "Single Sign-On" mechanizmą. Praktiškas pavyzdys - google.com. Turite vieną paskyrą (angl. "account"), prisijungiate prie sistemos vieną kartą ir galite naudotis visais servisais, nors jie yra visiškai skirtinguose serveriuose, stovi po atskirais domenais ir išsibarstę po visą pasaulį. Trumpai apie patį paprasčiausią CAS protokolą, kuris leidžia tai įgyvendinti paprastose sistemose. Reikalingas CAS serveris ir klientas, įsimylėjusiems Ruby - rubycas-server ir rubycas-client. Be abejo, reikalinga šiek tiek pasiskaityti dokumentaciją ir sukonfigūruoti juos, tai gana paprasta, tereikia išsirinkti CAS servisą aptarnaujantį serverį, surašyti domenus ir panašiai. Dabar įdomiausia dalis - autentikacijos procesas: 1. Jungiatės prie serverio klientodomenas.lt, kuris jus automatiškai nukreipia į CAS serverį
https://serveriodomenas.lt/login?service=http://klientodomenas.lt
2. Atlikus sėkmingą autentikaciją, jus nukreipia atgal, bet jau su prikabintu bilietu
http://klientodomenas.lt/?ticket=ST-956-Lyg0BdLkgdrBO9W17bXS
3. O dabar iškeičiame bilietą į vartotojo vardą
https://serveriodomenas.lt/serviceValidate?ticket=ST-956-Lyg0BdLkgdrBO9W17bXS&service=http://klientodomenas.lt
4. Gauname vartotojo vardą:
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
	<cas:authenticationSuccess>
		<cas:user>vartotojo_vardas</cas:user>

	</cas:authenticationSuccess>
</cas:serviceResponse>
O jungiantis iš kito CAS kliento, jūs atpažįstamas pagal sausainiuką, tad nebereikia atlikti autentifikaciją dar kartą. Be abejo, visu tuo mechanizmu rūpinasi rubycas-server ir rubycas-client, jums tereikia juos susikonfigūruoti ir naudoti.

no comments | no trackbacks

Comments

Trackbacks

Use the following link to trackback from your own site:
http://www.rubyonrails.lt/trackbacks?article_id=10

(leave url/email »)

reCaptcha

   Comment Markup Help Preview comment