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

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

Обзор протокола OAuth 2.0. Способы внедрения в различные типы приложений
Обзор протокола OAuth 2.0. Способы внедрения в различные типы приложенийОбзор протокола OAuth 2.0. Способы внедрения в различные типы приложений
Обзор протокола OAuth 2.0. Способы внедрения в различные типы приложенийVitebsk Miniq
 
Алексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаLiloSEA
 
Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»Артём Журавлёв «OAuth для .NET»
Артём Журавлёв «OAuth для .NET»SpbDotNet Community
 
IT talk Odessa. Device Hive
IT talk Odessa. Device HiveIT talk Odessa. Device Hive
IT talk Odessa. Device HiveMarina Peregud
 
Как повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи APIКак повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи APIMail.ru Group
 
OAuth 2.0 refresher (russian)
OAuth 2.0   refresher (russian)OAuth 2.0   refresher (russian)
OAuth 2.0 refresher (russian)marcwan
 
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"DataArt
 
Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Работа с соцсетями (Lecture 19 – social)
Работа с соцсетями (Lecture 19 – social)Noveo
 
Как переехать с http на https: пошаговая инструкция
Как переехать с http на https: пошаговая инструкцияКак переехать с http на https: пошаговая инструкция
Как переехать с http на https: пошаговая инструкция1PS.RU
 
Авторизация
АвторизацияАвторизация
АвторизацияPutinTheJew
 
OAuthоризация и API социальных сетей
OAuthоризация и API социальных сетейOAuthоризация и API социальных сетей
OAuthоризация и API социальных сетейАртём Курапов
 
15 - Web-технологии. Сессии и авторизация
15 - Web-технологии. Сессии и авторизация15 - Web-технологии. Сессии и авторизация
15 - Web-технологии. Сессии и авторизацияRoman Brovko
 
Lesson1
Lesson1Lesson1
Lesson1jinol
 
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...ZFConf Conference
 
Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3Dmitriy Krukov
 
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!"Fwdays
 

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

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 Спасибо за внимание!