OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

Эскертүү. котормо.: Октадан келген бул сонун текст OAuth жана OIDC (OpenID Connect) кантип жөнөкөй жана түшүнүктүү иштээрин түшүндүрөт. Бул билим иштеп чыгуучуларга, системалык администраторлорго, ал тургай популярдуу веб-тиркемелердин "кадимки колдонуучуларына" пайдалуу болот, алар башка кызматтар менен жашыруун маалыматтарды алмашып турушат.

Интернеттин "Таш доорунда" кызматтардын ортосунда маалымат алмашуу оңой болгон. Сиз жөн гана логин менен сырсөзүңүздү бир кызматтан экинчи кызматка бердиңиз, ал сиздин аккаунтуңузга кирип, керектүү маалыматты ала алат.

OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо
"Банк эсебиңизди бериңиз." «Биз сырсөз жана акча менен баары жакшы болот деп убада беребиз. Бул чынчыл! ” *хи хи*

Ужас! Эч ким эч качан колдонуучудан логин жана паролду бөлүшүүнү талап кылбашы керек; ишеним грамоталары, башка кызмат менен. Бул кызматтын артында турган уюм маалыматтарды коопсуз сактайт жана зарыл болгондон ашык жеке маалыматты чогултпайт деп эч кандай кепилдик жок. Бул жиндидей сезилиши мүмкүн, бирок кээ бир колдонмолор дагы эле бул практиканы колдонушат!

Бүгүнкү күндө бир кызматтын экинчисинин маалыматтарын коопсуз пайдаланууга мүмкүндүк берген бирдиктүү стандарт бар. Тилекке каршы, мындай стандарттарда жаргондор жана терминдер көп колдонулат, бул аларды түшүнүүнү кыйындатат. Бул материалдын максаты – жөнөкөй иллюстрациялардын жардамы менен алардын кантип иштээрин түшүндүрүү (Сиздин оюңузча, менин чиймелерим баланын чийилген чиймесин элестетет деп ойлойсузбу? Оо!).

OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

Айтмакчы, бул колдонмо видео форматта да бар:

Айымдар жана мырзалар, кош келиңиз: OAuth 2.0

OAuth 2.0 бир колдонмого башка тиркемедеги маалыматка жетүү уруксатын алууга мүмкүндүк берген коопсуздук стандарты. Уруксат берүү боюнча иш-аракеттердин ырааттуулугу [уруксат] (же макулдук [макулдук]) тез-тез чалышат уруксат [уруксат берүү] же берилген ыйгарым укук [өткөрүлгөн ыйгарым укуктар]. Бул стандарт менен, сиз колдонмого сырсөзүңүздү бербестен, сиздин атыңыздан башка тиркеменин функцияларын колдонууга уруксат бересиз. Класс!

Мисал катары, сиз "Күндүн жаман оюну" деп аталган сайтты таптыңыз дейли. [Күндүн коркунучтуу оюну] жана телефонуңузга смс аркылуу күн сайын сөздөрдү алуу үчүн ага жазылууну чечтим. Сизге сайт абдан жакты жана аны бардык тааныштарыңыз менен бөлүшүүнү чечтим. Кантсе да, ар бир адам коркунучтуу сөздөрдү жакшы көрөт, туурабы?

OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо
"Күндүн жаман сөзү: Денесинин сол тарабын жоготкон жигит жөнүндө уктуңуз беле? Эми ал дайыма туура!» (которуу болжолдуу, анткени оригиналда сөз боюнча өзүнүн оюну бар - болжол менен котормо.)

Байланыш тизмесиндеги ар бир адамга кат жазуу мүмкүн эмес экени түшүнүктүү. Жана, эгер сиз мага окшош болсоңуз, ашыкча жумуштан качуу үчүн көп нерсеге барасыз. Бактыга жараша, Күндүн коркунучтуу оюну бардык досторуңузду чакыра алат! Бул үчүн, сиз жөн гана ага байланыштарыңыздын электрондук почталарына кирүү мүмкүнчүлүгүн беришиңиз керек - сайт өзү аларга чакырууларды жөнөтөт (OAuth эрежелери)!

OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо
"Баары сөздү жакшы көрөт! — Уже кирдиңизби? — Күндүн коркунучтуу оюну веб-сайтына байланыш тизмеңизге кирүү мүмкүнчүлүгүн бергиңиз келеби? - Рахмат! Мындан ары, биз сиз тааныган ар бир адамга убакыттын акырына чейин күн сайын эстеткичтерди жөнөтөбүз! Сен эң жакшы доссуң!"

  1. Электрондук почта кызматыңызды тандаңыз.
  2. Зарыл болсо, почта веб-сайтына кирип, аккаунтуңузга кириңиз.
  3. Күндүн коркунучтуу оюнуна байланыштарыңызга кирүүгө уруксат бериңиз.
  4. Күндүн коркунучтуу оюну веб-сайтына кайтуу.

Эгер оюңуздан кайтсаңыз, OAuth колдонгон колдонмолор да кирүү мүмкүнчүлүгүн жокко чыгаруунун жолун камсыздайт. Күндүн коркунучтуу оюну менен байланыштарды бөлүшүүнү каалабай турганыңызды чечкениңизден кийин, почта сайтына өтүп, авторизацияланган тиркемелериңиздин тизмесинен тил табышуучу сайтты алып салсаңыз болот.

OAuth агымы

Биз азыр эле жалпы деп аталган нерседен өттүк агым [агым] OAuth. Биздин мисалда, бул агым көрүнүүчү кадамдардан, ошондой эле эки кызмат коопсуз маалымат алмашууга макул болгон бир нече көрүнбөгөн кадамдардан турат. Мурунку Күндүн Коркунучтуу Пун мисалында эң кеңири таралган OAuth 2.0 агымы колдонулат, ал "авторизация коду" агымы катары белгилүү. ["авторизация коду" агымы].

OAuth кантип иштээри тууралуу майда-чүйдөсүнө чейин, кээ бир терминдердин мааниси жөнүндө сүйлөшөлү:

  • Ресурстун ээси:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    Бул сизби! Сиз эсептик маалыматтарыңызга, маалыматтарыңызга ээ болосуз жана аккаунттарыңызда аткарыла турган бардык аракеттерди көзөмөлдөйсүз.

  • керектөөчү:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    атынан белгилүү бир аракеттерди жасоону каалаган тиркеме (мисалы, күндүн коркунучтуу оюну кызматы) Ресурстун ээси'А.

  • Авторизация сервери:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    Билүүчү колдонмо Ресурстун ээси'a жана кайсы y Ресурстун ээси'жана буга чейин аккаунту бар.

  • Ресурстук сервер:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    Колдонмо программалоо интерфейси (API) же бул кызмат керектөөчү атынан колдонууну каалайт Ресурстун ээси'А.

  • URI кайра багыттоо:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    Шилтеме кайда Авторизация сервери багыт берет Ресурстун ээсижана уруксат бергенден кийин керектөөчү'u. Бул кээде "Кайра чалуу URL" деп аталат.

  • Жооп түрү:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    Кабыл алынышы күтүлгөн маалыматтын түрү керектөөчү. Эң кеңири тараган Жооп түрү'om код, башкача айтканда керектөөчү алууну күтөт Авторизация коду.

  • масштабы:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    Бул талап кылынган уруксаттардын кеңири сүрөттөлүшү керектөөчү'y, мисалы, маалыматтарга жетүү же белгилүү бир аракеттерди аткаруу.

  • макулдук:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    Авторизация сервери тытылды, Scopes, суралган керектөөчү– деп сурайт Ресурстун ээси'аа, ал камсыз кылууга даяр керектөөчү'тиешелүү уруксаттарга ээ.

  • Кардардын ID:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    Бул ID идентификациялоо үчүн колдонулат керектөөчү'жана андан ары Авторизация сервери'e.

  • Кардар сыры:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    Бул бир гана белгилүү сырсөз керектөөчү'у жана Авторизация сервери'u. Бул аларга жашыруун маалымат алмашууга мүмкүндүк берет.

  • Авторизация коду:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    Кыска мөөнөттүү убактылуу код, кайсы керектөөчү камсыз кылат Авторизация серверидын ордуна мүмкүндүк алуу Токен.

  • мүмкүндүк алуу Токен:

    OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

    кардар менен байланышуу үчүн колдоно турган ачкыч Ресурстук сервер'ом. камсыз кылат төш белги же ачкыч картасынын бир түрү керектөөчү'маалыматтарды талап кылууга же аракеттерди жасоого уруксаты бар Ресурстук серверсенин атынан.

пикир: Кээде авторизация сервери менен ресурс сервери бир сервер болуп саналат. Бирок, кээ бир учурларда, бул ар кандай серверлер болушу мүмкүн, атүгүл бир уюмга таандык эмес. Мисалы, Авторизация сервери Ресурс сервери ишенген үчүнчү тараптын кызматы болушу мүмкүн.

Эми OAuth 2.0 негизги концепциялары менен таанышкандан кийин, келгиле, өзүбүздүн мисалга кайрылып, OAuth агымында эмне болуп жатканын жакшыраак карап көрөлү.

OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

  1. сен, Ресурстун ээси, Күндүн Коркунучтуу Пун кызматын камсыз кылгым келет (керектөөчү'y) бардык досторуңузга чакырууларды жөнөтө алышы үчүн байланыштарыңызга кирүү.
  2. керектөөчү браузерди бетке багыттайт Авторизация сервери'a жана суроо-талапка кирет Кардардын ID, URI кайра багыттоо, Жооп түрү жана бир же бир нече Scopes (уруксаттарды) ал керек.
  3. Авторизация сервери зарыл болсо, логин менен сырсөздү сурап, сизди текшерет.
  4. Авторизация сервери форманы көрсөтөт макулдук (тастыктоо) бардыгынын тизмеси менен Scopesсуралган керектөөчү'ом. Сиз макул же баш тартасыз.
  5. Авторизация сервери сизди сайтка багыттайт керектөөчүа, колдонуу URI кайра багыттоо бирге Авторизация коду (авторизация коду).
  6. керектөөчү түздөн-түз байланыштар Авторизация сервери'om (браузерди айланып өтүү Ресурстун ээси'a) жана аман-эсен жөнөтөт Кардардын ID, Кардар сыры и Авторизация коду.
  7. Авторизация сервери маалыматтарды текшерет жана менен жооп берет мүмкүндүк алуу Токен'om (жетүү белгиси).
  8. азыр керектөөчү колдонсо болот мүмкүндүк алуу Токен суроо-талап жөнөтүү Ресурстук сервер байланыштардын тизмесин алуу үчүн.

Кардар ID жана сыр

Күндүн коркунучтуу оюнуна сиздин байланыштарыңызга кирүүгө уруксат бергениңизден көп убакыт мурун, Кардар жана Авторизация сервери жумушчу мамиле түзүшкөн. Авторизация сервери Клиенттин идентификаторун жана Кардар сырын (кээде деп аталат Колдонмонун идентификатору и Колдонмо сыры) жана аларды OAuth ичинде андан аркы өз ара аракеттенүү үчүн Кардарга жөнөттү.

OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо
"- Салам! Мен сиз менен иштешүүнү каалайт элем! - Албетте, көйгөй эмес! Бул жерде сиздин Кардар ID жана сыр!»

Аталышы Кардар сыры аны Кардар жана Авторизация Сервери гана билиши үчүн купуя сакталышы керек экенин көрсөтүп турат. Анткени, анын жардамы менен Авторизация сервери Кардардын аныктыгын тастыктайт.

Бирок бул баары эмес... Сураныч, OpenID Connect менен салам айтыңыз!

OAuth 2.0 үчүн гана иштелип чыккан уруксат - бир тиркемеден экинчисине маалыматтарга жана функцияларга жетүүнү камсыз кылуу. OpenID туташуу (OIDC) - OAuth 2.0 үстүндөгү жука катмар, ал каттоо эсебине кирген колдонуучу жөнүндө логин жана профиль маалыматын кошот. Кирүү сессиясын уюштуруу көбүнчө деп аталат аутентификация [аныктыгын текшерүү], жана системага кирген колдонуучу жөнүндө маалымат (б.а. Ресурстун ээси'e), - өздүк маалымат [өздүк]. Authorization Server OIDC колдосо, анда ал кээде деп аталат жеке маалыматтарды камсыздоочу [идентификациялоочу]камсыз кылгандыктан керектөөчүжөнүндө маалымат Ресурстун ээси'e.

OpenID Connect бир логин бир нече тиркемелерде колдонулушу мүмкүн болгон сценарийлерди ишке ашырууга мүмкүндүк берет - бул ыкма ошондой эле белгилүү бир жолу кирүү (SSO). Мисалы, колдонмо Facebook же Twitter сыяктуу социалдык тармактар ​​менен SSO интеграциясын колдой алат, бул колдонуучуларга мурунтан эле бар жана колдонууну каалаган аккаунтту колдонууга мүмкүндүк берет.

OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

OpenID Connect агымы OAuth менен бирдей көрүнөт. Бир гана айырмасы, негизги суроо-талапта колдонулган конкреттүү чөйрө болуп саналат openid, - А керектөөчү акыры ушундай болуп калат мүмкүндүк алуу Токенжана ID Токен.

OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

OAuth агымындагыдай эле, мүмкүндүк алуу Токен OpenID Connect менен - ​​бул так эмес белгилүү бир маани керектөөчү'u. көз карашынан керектөөчү‘а мүмкүндүк алуу Токен ар бир суроо менен бирге жөнөтүлгөн белгилердин саптарын билдирет Ресурстук сервер'y, жана бул токен жарактуу экендигин аныктайт. ID Токен таптакыр башка нерсе.

ID Токен - JWT

ID Токен JSON Web Token же JWT катары белгилүү болгон белгилердин атайын форматталган саптары (JWT энбелгилери кээде "jots" деп айтылат). Сырттан келген байкоочулар үчүн JWT түшүнүксүз gobbledygook сыяктуу сезилиши мүмкүн, бирок керектөөчү JWTден ID, колдонуучунун аты, каттоо эсебине кирүү убактысы, жарактуулук мөөнөтү сыяктуу ар кандай маалыматтарды чыгара алат ID Токен'ah, JWTге кийлигишүү аракеттеринин болушу. Ичиндеги маалыматтар ID Токен"жана деп аташат колдонмолор [дооматтар].

OAuth жана OpenID Connect үчүн иллюстрацияланган колдонмо

OIDC учурда стандарттуу ыкма бар керектөөчү кошумча жеке маалыматты талап кыла алат [өздүк] от Авторизация сервери'жана, мисалы, электрондук почта дарегин колдонуу мүмкүндүк алуу Токен.

OAuth жана OIDC жөнүндө көбүрөөк билүү

Ошентип, биз OAuth жана OIDC кантип иштээрин кыскача карап чыктык. Тереңирээк казууга даярсызбы? Бул жерде OAuth 2.0 жана OpenID Connect жөнүндө көбүрөөк билүүгө жардам бере турган кошумча ресурстар:

Адаттагыдай эле, комментарий калтырыңыз. Биздин акыркы жаңылыктардан кабардар болуу үчүн, жазылыңыз Twitter и YouTube Иштеп чыгуучулар үчүн Okta!

Котормочудан PS

Биздин блогдон дагы окуңуз:

Source: www.habr.com

Комментарий кошуу