JavaRush /Kurslar /All lectures for UZ purposes /OpenID Qo'llab-quvvatlash

OpenID Qo'llab-quvvatlash

All lectures for UZ purposes
Daraja, Dars
Mavjud
OpenID 1.0 va 2.0 protokollari eskirgan, shuning uchun foydalanuvchilarga OpenID Connect-ga o'tish tavsiya etiladi, bu spring-security-oauth2 tomonidan qo'llab-quvvatlanadi.

Nomlar maydoni OpenID orqali tizimga kirishni oddiy forma orqali yoki unga qo'shimcha ravishda qo'llab-quvvatlaydi, buning uchun faqat kichik o'zgarish kiritish kerak:

<http>
<intercept-url pattern="/**" access="ROLE_USER" />
<openid-login />
</http>

Keyin esa, OpenID provayderi (masalan, myopenid.com) orqali ro'yxatdan o'tishingiz va foydalanuvchi ma'lumotlarini xotirada joylashtirilgan <user-service> ga qo'shishingiz kerak:

<user name="https://jimi.hendrix.myopenid.com/" authorities="ROLE_USER" />

Siz myopenid.com sayti orqali autentifikatsiya qilish orqali tizimga kirishingiz kerak. Shuningdek, OpenID foydalanish uchun maxsus UserDetailsService ni tanlashingiz mumkin, openid-login elementida user-service-ref atributini o'rnatish orqali. E'tibor bering, yuqoridagi foydalanuvchi konfiguratsiyasidan parol atributini tashlab ketdik, chunki bu foydalanuvchi ma'lumotlari to'plami faqat foydalanuvchiga ruxsatlarni yuklash uchun foydalaniladi. Parol ichki darajada tasodifiy ravishda yaratiladi, bu esa bu foydalanuvchi ma'lumotlar to'plamini boshqa konfiguratsiya joylarida autentifikatsiya manbai sifatida qo'llanilishini oldini oladi.

Atributlar almashinuvi

OpenIDda atributlar almashinuvi ni qo'llab-quvvatlash. Quyidagi konfiguratsiyada, ilova tomonidan foydalanish uchun OpenID provayderidan elektron pochta manzili va to'liq ismini olishga harakat qilamiz:

<openid-login>
<attribute-exchange>
	<openid-attribute name="email" type="https://axschema.org/contact/email" required="true"/>
	<openid-attribute name="name" type="https://axschema.org/namePerson"/>
</attribute-exchange>
</openid-login>

OpenID har bir atributining "turi" - bu maxsus sxema tomonidan belgilangan URI, bu holda https://axschema.org/ dan foydalanishni talab qiladi. Agar atribut muvaffaqiyatli autentifikatsiya uchun olinishi kerak bo'lsa, required atributini o'rnatishingiz mumkin. Aniq sxema va qo'llab-quvvatlanadigan atributlar sizning OpenID provayderingizga bog'liq. Atribut qiymatlari autentifikatsiya jarayonining komponenti sifatida qaytariladi va ularning kirishini quyidagi kod orqali olishingiz mumkin:

OpenIDAuthenticationToken token =
	(OpenIDAuthenticationToken)SecurityContextHolder.getContext().getAuthentication();
List<OpenIDAttribute> attributes = token.getAttributes();

Biz SecurityContextHolder dan OpenIDAuthenticationToken ni olib olamiz. OpenIDAttribute atributning turi va olinadigan qiymatini (yoki ko'p qiymatli atributlar holida qiymatlarni) o'z ichiga oladi. Siz bir nechta attribute-exchange elementlari orqali identifier-matcher atributini har biri uchun qo'llab-quvvatlashingiz mumkin. Bu foydalanuvchi tomonidan uzatilgan OpenID identifikatori bilan mos keladigan muntazam ifoda. Google, Yahoo va MyOpenID uchun turli atributlar ro'yxatlari bilan OpenID ilova namunasi kodlar bazasida konfiguratsiya misolini ko'ring.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION