JavaRush /Курсхо /All lectures for TG purposes /Дастгирии OpenID

Дастгирии OpenID

All lectures for TG purposes
Сатҳи , Дарс
дастрас
Протоколҳои OpenID 1.0 ва 2.0 куҳнашудаанд, бинобарин барои истифодабарандагон тавсия мешавад, ки ба OpenID Connect, ки аз ҷониби spring-security-oauth2 дастгирӣ мешавад, гузаранд.

Майдони ном дастгирии воридшавӣ бо истифодаи OpenID ба ҷои воридшавии оддӣ тавассути шаклро дорад, ки барои ин танҳо як тағйироти хурд лозим аст:

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

Пас, лозим аст, ки аз тариқи таъминкунандаи OpenID (масалан, myopenid.com) сабти ном карда шавад ва маълумоти истифодабаранда ба <user-service>, ки дар оперативи хотира ҷойгир аст, илова карда шавад:

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

Шумо бояд тавонед ворид шавед, бо истифода аз сомонаи myopenid.com барои аутентификатсия. Ҳамчунин, метавонед бин, ки махсус дар UserDetailsService интихоб кунед, дар ҳолати истифода аз OpenID, ки бо атрибути user-service-ref дар элементи openid-login танзим шудааст. Тафовут кунед, ки мо атрибути паролро аз конфигуратсияи истифодабаранда, ки дар боло оварда шудааст, нест кардем, чунки ин маҷмӯи маълумотҳо танҳо барои бор кардан ёфтани ваколатҳо барои истифодабаранда истифода мешавад. Парол дар сатҳи дохилӣ тасодуфӣ тавлид мешавад, ки аз истифодаи нодурусти ин маълумоти истифодабаранда дар дигар ҷойҳои конфигуратсия пешгирӣ мекунад.

Обмен аттрибутҳо

Дастгирии обмен атрибутҳо дар OpenID. Барои намуна конфигуратсияи зерин кӯшиш мекунад, ки суроғаи электронӣ ва номи пурраро аз таъминкунандаи OpenID барои истифодаи барнома дастрас кунад:

<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 - ин URI аст, ки аз ҷониби схема махсус муайян мешавад, дар ин ҷо https://axschema.org/. Агар барои муваффақона аутентификатсия кардани атрибут лозим шавад, мумкин аст атрибути required муқаррар карда шавад. Схема ва атрибутҳое, ки дастгирӣ мешаванд, зиёда аз ҳама аз таъминкунандаи шумо OpenID вобастаанд. Арзишҳои атрибутҳо ҳамчун ҷузъи раванди аутентификатсия баргардонда мешаванд ва баъд аз ин дастрасӣ ба онҳо тавассути коди зерин мумкин аст:

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

Мо метавонем OpenIDAuthenticationToken-ро аз SecurityContextHolder бигирем. OpenIDAttribute навъи атрибут ва арзиши дошта (ё арзишҳои дар ҳолати атрибутҳои бисёрқимат) дар бар мегирад. Шумо метавонед якчанд элементи attribute-exchange гузоред, ки бо истифода аз атрибути identifier-matcher барои ҳар яки онҳо аст. Он дорои яке аз ифодаҳои мунтазам мебошад, ки бо идентификатори OpenID, ки аз ҷониби истифодабаранда дода шудааст, мутобиқат мекунад. Намунаи конфигуратсия дар кодеки замина барои намунаи барномаи OpenID, ки дар он рӯйхатҳои гуногуни атрибутҳо барои таъминкунандагони Google, Yahoo ва MyOpenID оварда шудаанд, дидан мумкин аст.

Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION