SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
OAuth 2 и OpenID Connect простыми и понятными словами
Yurii Yudkin


Front-end developer
О себе
Юрий Юдкин
Более 6 лет опыта в front-end разработке
Front-end разработчик в компании DataArt
Пример простой аутентификации
Форма аутентификации
DB
Set-Cookie: sessionId=219ffwef9w0f;
• Безопасность


• Поддержка
Форма аутентификации - недостатки
OAuth 2 - протокол авторизации
Делегированнaя авторизация
• Resource owner - Вы! Вы являетесь владельцем вашей личности, ваших данных и любых действий, которые могут
быть выполнены с вашими учетными записями.


• Client - приложение которое хочет получить доступ к данным или выполнять действия от имени Resource Owner.


• Authorization server - приложение, которое знает Resource owner, где у Resource owner уже есть учетная запись.


• Resource server - API сервер, который Client может использовать от имени Resource Owner.


• Redirect URI - URL-адрес, на который сервер авторизации перенаправит владельца ресурса обратно после
предоставления разрешения клиенту. Иногда это называют “Callback URL”.


• Response Type - тип информации, которую ожидает получить Client. Наиболее распространенный тип ответа -
это код, в котором Client ожидает код авторизации.


• Authorization Code - недолговечный временный код, который Client предоставляет серверу авторизации в обмен на
токен доступа.


• Access Token - ключ, который Client будет использовать для связи с Resource Server.
OAuth 2 терминология
Делегированная авторизация OAuth 2
Client
Resource owner
Go to Authorization server
Redirect URI: get_rich_or_die/callback
Response Type: Code
Authorization server
Back to redirect url
with authorization token
Exchange authorization token for access code
• Scope - перечень того, куда клиент хочет получить доступ, например доступ к
данным или выполнение действий.


• Consent - согласие Resource owner на предоставление доступа клиенту на
данные или действия указанные в scope.
Еще немного OAuth 2 терминологии
Делегированная авторизация OAuth 2
Client
Resource owner
Go to Authorization server
Scope: profile
Redirect URI: get_rich_or_die/callback
Response Type: Code
Authorization server
Back to redirect url
with authorization token
Exchange authorization token for access code
OAuth 2 и OpenID Connect
• OpenID Authentication


• OAuth 2.0 Authorization
OpenID
OAuth 2.0
HTTP
OpenID Connect - протокол аутентификации
OpenID Connect authorization code flow
Client
Resource owner
Go to Authorization server
Redirect URI: get_rich_or_die/callback
Scope: profile openid
Response Type: Code
Authorization server
Back to redirect url
with authorization token
Exchange authorization token for access code
and ID token.
Выводы
Используйте OAuth 2:


• Предоставления доступа к API


• Получения доступа к данным пользователя
в других системах
OAuth 2 и OpenID Connect
Используйте OpenID:


• Для аутентификацией пользователя
https://developer.okta.com/ - это компания предоставляет услуги по управлению
идентификацией и доступом.




https://oauth.net/ - сайт с официальной документацией и спецификацией по OAuth протоколу.


https://openid.net/ - сайт с официальной документацией и спецификацией по OpenID
протоколу.
Полезные источники
Вопросы?
Yurii Yudkin


telegram: @you_are_great25


LinkedIn: https://www.linkedin.com/in/yurii-yudkin
Спасибо за внимание!

Contenu connexe

Tendances

Tendances (20)

REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
Design applicatif avec symfony2
Design applicatif avec symfony2Design applicatif avec symfony2
Design applicatif avec symfony2
 
Rest API Security
Rest API SecurityRest API Security
Rest API Security
 
Python tools to deploy your machine learning models faster
Python tools to deploy your machine learning models fasterPython tools to deploy your machine learning models faster
Python tools to deploy your machine learning models faster
 
Ott Streaming Protocols and DRM
Ott Streaming Protocols and DRMOtt Streaming Protocols and DRM
Ott Streaming Protocols and DRM
 
OAuth2 - Introduction
OAuth2 - IntroductionOAuth2 - Introduction
OAuth2 - Introduction
 
Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄Domain-Driven-Design 정복기 1탄
Domain-Driven-Design 정복기 1탄
 
Understanding open max il
Understanding open max ilUnderstanding open max il
Understanding open max il
 
Lightweight ETL pipelines with mara (PyData Berlin September Meetup)
Lightweight ETL pipelines with mara (PyData Berlin September Meetup)Lightweight ETL pipelines with mara (PyData Berlin September Meetup)
Lightweight ETL pipelines with mara (PyData Berlin September Meetup)
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
 
Microservices Security
Microservices SecurityMicroservices Security
Microservices Security
 
Introduction to REST - API
Introduction to REST - APIIntroduction to REST - API
Introduction to REST - API
 
99 % syndrome
99 % syndrome99 % syndrome
99 % syndrome
 
Designing APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven Design
 
Demystifying OAuth 2.0
Demystifying OAuth 2.0Demystifying OAuth 2.0
Demystifying OAuth 2.0
 
Spring security oauth2
Spring security oauth2Spring security oauth2
Spring security oauth2
 
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
 
Artificial intelligence in speech recognition
Artificial intelligence in speech recognitionArtificial intelligence in speech recognition
Artificial intelligence in speech recognition
 
금융It시스템의 이해 2편
금융It시스템의 이해 2편금융It시스템의 이해 2편
금융It시스템의 이해 2편
 

Similaire à OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17

Алексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнеса
LiloSEA
 
OAuth 2.0 refresher (russian)
OAuth 2.0   refresher (russian)OAuth 2.0   refresher (russian)
OAuth 2.0 refresher (russian)
marcwan
 
Как переехать с http на https: пошаговая инструкция
Как переехать с http на https: пошаговая инструкцияКак переехать с http на https: пошаговая инструкция
Как переехать с http на https: пошаговая инструкция
1PS.RU
 
Авторизация
АвторизацияАвторизация
Авторизация
PutinTheJew
 
OAuthоризация и API социальных сетей
OAuthоризация и API социальных сетейOAuthоризация и API социальных сетей
OAuthоризация и API социальных сетей
Артём Курапов
 
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf Conference
 

Similaire à OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17 (20)

Обзор протокола OAuth 2.0. Способы внедрения в различные типы приложений
Обзор протокола OAuth 2.0. Способы внедрения в различные типы приложенийОбзор протокола OAuth 2.0. Способы внедрения в различные типы приложений
Обзор протокола OAuth 2.0. Способы внедрения в различные типы приложений
 
Алексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнеса
 
Auth methods lomalkin
Auth methods lomalkinAuth methods lomalkin
Auth methods lomalkin
 
Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»
 
веб сервер
веб сервервеб сервер
веб сервер
 
IT talk Odessa. Device Hive
IT talk Odessa. Device HiveIT talk Odessa. Device Hive
IT talk Odessa. Device Hive
 
Как повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи APIКак повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи API
 
OAuth 2.0 refresher (russian)
OAuth 2.0   refresher (russian)OAuth 2.0   refresher (russian)
OAuth 2.0 refresher (russian)
 
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
 
Api.tech
Api.techApi.tech
Api.tech
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)
 
Как переехать с http на https: пошаговая инструкция
Как переехать с http на https: пошаговая инструкцияКак переехать с http на https: пошаговая инструкция
Как переехать с http на https: пошаговая инструкция
 
Авторизация
АвторизацияАвторизация
Авторизация
 
OAuthоризация и API социальных сетей
OAuthоризация и API социальных сетейOAuthоризация и API социальных сетей
OAuthоризация и API социальных сетей
 
15 - Web-технологии. Сессии и авторизация
15 - Web-технологии. Сессии и авторизация15 - Web-технологии. Сессии и авторизация
15 - Web-технологии. Сессии и авторизация
 
Lesson1
Lesson1Lesson1
Lesson1
 
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
 
Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3
 
REST
RESTREST
REST
 
Stas Sultanov "REST again? Oh, come on!"
Stas Sultanov "REST again? Oh, come on!"Stas Sultanov "REST again? Oh, come on!"
Stas Sultanov "REST again? Oh, come on!"
 

Plus de OdessaFrontend

Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
OdessaFrontend
 

Plus de OdessaFrontend (20)

Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19
 
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
 
Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19
 
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
 
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
 
Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17
 
Антихрупкий TypeScript | Odessa Frontend Meetup #17
Антихрупкий TypeScript | Odessa Frontend Meetup #17Антихрупкий TypeScript | Odessa Frontend Meetup #17
Антихрупкий TypeScript | Odessa Frontend Meetup #17
 
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
 
Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16
 
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
 
Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16
 
Современный станок верстальщика
Современный станок верстальщикаСовременный станок верстальщика
Современный станок верстальщика
 
Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15
 
DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15
 
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
 
Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15
 
Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14
 
Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13
 
Структуры данных в JavaScript | Odessa Frontend Meetup #13
Структуры данных в JavaScript | Odessa Frontend Meetup #13Структуры данных в JavaScript | Odessa Frontend Meetup #13
Структуры данных в JavaScript | Odessa Frontend Meetup #13
 
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
 

OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17

  • 1.
  • 2. OAuth 2 и OpenID Connect простыми и понятными словами Yurii Yudkin Front-end developer
  • 3. О себе Юрий Юдкин Более 6 лет опыта в front-end разработке Front-end разработчик в компании DataArt
  • 6. • Безопасность • Поддержка Форма аутентификации - недостатки
  • 7. OAuth 2 - протокол авторизации
  • 9. • Resource owner - Вы! Вы являетесь владельцем вашей личности, ваших данных и любых действий, которые могут быть выполнены с вашими учетными записями. • Client - приложение которое хочет получить доступ к данным или выполнять действия от имени Resource Owner. • Authorization server - приложение, которое знает Resource owner, где у Resource owner уже есть учетная запись. • Resource server - API сервер, который Client может использовать от имени Resource Owner. • Redirect URI - URL-адрес, на который сервер авторизации перенаправит владельца ресурса обратно после предоставления разрешения клиенту. Иногда это называют “Callback URL”. • Response Type - тип информации, которую ожидает получить Client. Наиболее распространенный тип ответа - это код, в котором Client ожидает код авторизации. • Authorization Code - недолговечный временный код, который Client предоставляет серверу авторизации в обмен на токен доступа. • Access Token - ключ, который Client будет использовать для связи с Resource Server. OAuth 2 терминология
  • 10. Делегированная авторизация OAuth 2 Client Resource owner Go to Authorization server Redirect URI: get_rich_or_die/callback Response Type: Code Authorization server Back to redirect url with authorization token Exchange authorization token for access code
  • 11. • Scope - перечень того, куда клиент хочет получить доступ, например доступ к данным или выполнение действий. • Consent - согласие Resource owner на предоставление доступа клиенту на данные или действия указанные в scope. Еще немного OAuth 2 терминологии
  • 12. Делегированная авторизация OAuth 2 Client Resource owner Go to Authorization server Scope: profile Redirect URI: get_rich_or_die/callback Response Type: Code Authorization server Back to redirect url with authorization token Exchange authorization token for access code
  • 13. OAuth 2 и OpenID Connect • OpenID Authentication • OAuth 2.0 Authorization OpenID OAuth 2.0 HTTP
  • 14. OpenID Connect - протокол аутентификации
  • 15. OpenID Connect authorization code flow Client Resource owner Go to Authorization server Redirect URI: get_rich_or_die/callback Scope: profile openid Response Type: Code Authorization server Back to redirect url with authorization token Exchange authorization token for access code and ID token.
  • 17. Используйте OAuth 2: 
 • Предоставления доступа к API • Получения доступа к данным пользователя в других системах OAuth 2 и OpenID Connect Используйте OpenID: 
 • Для аутентификацией пользователя
  • 18. https://developer.okta.com/ - это компания предоставляет услуги по управлению идентификацией и доступом. 
 https://oauth.net/ - сайт с официальной документацией и спецификацией по OAuth протоколу. https://openid.net/ - сайт с официальной документацией и спецификацией по OpenID протоколу. Полезные источники
  • 20. Yurii Yudkin 
 telegram: @you_are_great25 
 LinkedIn: https://www.linkedin.com/in/yurii-yudkin Спасибо за внимание!