SlideShare a Scribd company logo
1 of 14
Download to read offline
By Maksim Dadzerkin
OAuth – протокол авторизации.
Он позволяет выдать одному сервису/приложению
права на доступ к ресурсам пользователя на другом
сервисе.
Протокол избавляет от необходимости доверять
приложению логин и пароль, а также позволяет
выдавать ограниченный набор прав (например,
только на чтение ограниченного набора ресурсов).
OAuth 2.0 основан на использовании базовых
веб-технологий (HTTP).
Использование возможно:
WEB-сайты
Мобильные приложения
Desktop приложения
и т.п.
Facebook
Google
Yandex
LinkedIn
VK
И др.
Виды авторизаций:
 с помощью логина и пароля
 для приложений с серверной частью
 для полностью клиентских приложений
 с возможностью восстановления предыдущей
авторизации
Client ID
Secret Key (Shared Secret Key)
Authorization Grants
Access Token
Refresh Token
 Resource Owner – владелец ресурса
 Resource Server – сервер, который содержит
защищаемые ресурсы. Сервер поддерживает
функции по предоставлению ресурсов по access
token
 Client – приложение, делающее запросы к
защищенным ресурсам от имени владельца этих
ресурсов и с его разрешения
 Authorization Server – выдает access tokens
клиенту после успешной аутентификации владельца
ресурсов и получения разрешений.
Client
Resource
Owner
Authorization
Server
Resource
Server
Authorization Request
Authorization Grant
Authorization Grant
Access Token
Access Token
Protected Resource
Client
Authorization
Server
Resource
Server
Authorization Grant
Access Token & Refresh Token
Refresh Token
Access Token & Optional Refresh Token
Access Token
Protected Resource
Access Token
Invaid Token Error
Java:
 Apache Amber (draft 22)
 Spring Security for OAuth
 Apis Authorization Server (v2-31)
 Restlet Framework (draft 30)
 Apache CXF
.NET:
 .NET DotNetOpenAuth
Java:
 Apache Amber (draft 22)
 Spring Social
 Spring Security for OAuth
 Restlet Framework (draft 30)
.NET:
 DotNetOpenAuth
 Spring Social for .NET
Авторизация без использования логина и
пароля пользователя предоставляет
множество преимуществ:
Безопасность.
Повышение лояльности пользователей.
Удобство для пользователей.
В реализации OAuth 2.0 можно выделить
следующие отрицательные моменты:
Взаимодействие
Ограниченный срок действия маркеров
Вопросы?

More Related Content

Similar to Обзор протокола OAuth 2.0. Способы внедрения в различные типы приложений

Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"DataArt
 
Android - 15 - Social
Android - 15 - SocialAndroid - 15 - Social
Android - 15 - SocialNoveo
 
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)SkillFactory
 
Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3Dmitriy Krukov
 
Blitz Identity Provider
Blitz Identity ProviderBlitz Identity Provider
Blitz Identity ProviderMikhail Vanin
 
03 web server_architecture_ru
03 web server_architecture_ru03 web server_architecture_ru
03 web server_architecture_rumcroitor
 
Как повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи APIКак повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи APIMail.ru Group
 
JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.Igor Shkulipa
 
C# Web. Занятие 07.
C# Web. Занятие 07.C# Web. Занятие 07.
C# Web. Занятие 07.Igor Shkulipa
 
Идентификация и аутентификация - встроенные функции безопасности или задачи с...
Идентификация и аутентификация - встроенные функции безопасности или задачи с...Идентификация и аутентификация - встроенные функции безопасности или задачи с...
Идентификация и аутентификация - встроенные функции безопасности или задачи с...Mikhail Vanin
 
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...Mail.ru Group
 
Как переехать с http на https: пошаговая инструкция
Как переехать с http на https: пошаговая инструкцияКак переехать с http на https: пошаговая инструкция
Как переехать с http на https: пошаговая инструкция1PS.RU
 
Integrating Exchange Online And Azure With Ad Sotnikov
Integrating Exchange Online And Azure With Ad   SotnikovIntegrating Exchange Online And Azure With Ad   Sotnikov
Integrating Exchange Online And Azure With Ad SotnikovLiudmila Li
 
Flash Media Server
Flash Media ServerFlash Media Server
Flash Media Serverdinosaur
 
CodeFest 2011. Городецкий Я. — Зачем системному администратору использовать CDN?
CodeFest 2011. Городецкий Я. — Зачем системному администратору использовать CDN?CodeFest 2011. Городецкий Я. — Зачем системному администратору использовать CDN?
CodeFest 2011. Городецкий Я. — Зачем системному администратору использовать CDN?CodeFest
 
Сам себе АНБ, API социальных сетей
Сам себе АНБ, API социальных сетейСам себе АНБ, API социальных сетей
Сам себе АНБ, API социальных сетейOpen-IT
 

Similar to Обзор протокола OAuth 2.0. Способы внедрения в различные типы приложений (20)

веб сервер
веб сервервеб сервер
веб сервер
 
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
Олег Крут (DataArt) "Что такое интернет вещей и как с ним работать"
 
Api.tech
Api.techApi.tech
Api.tech
 
Android - 15 - Social
Android - 15 - SocialAndroid - 15 - Social
Android - 15 - Social
 
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
Как защитить сеть от web-угроз с помощью Cisco WSA (ex IronPort)
 
Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3Мировые информационные ресурсы. Лекция 3
Мировые информационные ресурсы. Лекция 3
 
Blitz Identity Provider
Blitz Identity ProviderBlitz Identity Provider
Blitz Identity Provider
 
SSO & MFA
SSO & MFASSO & MFA
SSO & MFA
 
03 web server_architecture_ru
03 web server_architecture_ru03 web server_architecture_ru
03 web server_architecture_ru
 
Как повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи APIКак повысить эффективность управления рекламой при помощи API
Как повысить эффективность управления рекламой при помощи API
 
JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.JavaScript Базовый. Занятие 01.
JavaScript Базовый. Занятие 01.
 
C# Web. Занятие 07.
C# Web. Занятие 07.C# Web. Занятие 07.
C# Web. Занятие 07.
 
Идентификация и аутентификация - встроенные функции безопасности или задачи с...
Идентификация и аутентификация - встроенные функции безопасности или задачи с...Идентификация и аутентификация - встроенные функции безопасности или задачи с...
Идентификация и аутентификация - встроенные функции безопасности или задачи с...
 
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
«Идентификация, аутентификация, авторизация – встроенные функции приложений и...
 
Как переехать с http на https: пошаговая инструкция
Как переехать с http на https: пошаговая инструкцияКак переехать с http на https: пошаговая инструкция
Как переехать с http на https: пошаговая инструкция
 
Управляем ИТ-процессами и службой поддержки пользователей вместе с Naumen Ser...
Управляем ИТ-процессами и службой поддержки пользователей вместе с Naumen Ser...Управляем ИТ-процессами и службой поддержки пользователей вместе с Naumen Ser...
Управляем ИТ-процессами и службой поддержки пользователей вместе с Naumen Ser...
 
Integrating Exchange Online And Azure With Ad Sotnikov
Integrating Exchange Online And Azure With Ad   SotnikovIntegrating Exchange Online And Azure With Ad   Sotnikov
Integrating Exchange Online And Azure With Ad Sotnikov
 
Flash Media Server
Flash Media ServerFlash Media Server
Flash Media Server
 
CodeFest 2011. Городецкий Я. — Зачем системному администратору использовать CDN?
CodeFest 2011. Городецкий Я. — Зачем системному администратору использовать CDN?CodeFest 2011. Городецкий Я. — Зачем системному администратору использовать CDN?
CodeFest 2011. Городецкий Я. — Зачем системному администратору использовать CDN?
 
Сам себе АНБ, API социальных сетей
Сам себе АНБ, API социальных сетейСам себе АНБ, API социальных сетей
Сам себе АНБ, API социальных сетей
 

More from Vitebsk Miniq

Runtime compilation and code execution in groovy
Runtime compilation and code execution in groovyRuntime compilation and code execution in groovy
Runtime compilation and code execution in groovyVitebsk Miniq
 
The 5 Laws of Software Estimates
The 5 Laws of Software EstimatesThe 5 Laws of Software Estimates
The 5 Laws of Software EstimatesVitebsk Miniq
 
Latest & Greatest Observability Release 7.9
Latest & Greatest Observability Release 7.9Latest & Greatest Observability Release 7.9
Latest & Greatest Observability Release 7.9Vitebsk Miniq
 
Тестирование Spring-based приложений
Тестирование Spring-based приложенийТестирование Spring-based приложений
Тестирование Spring-based приложенийVitebsk Miniq
 
Семантический поиск - что это, как работает и чем отличается от просто поиска
Семантический поиск - что это, как работает и чем отличается от просто поискаСемантический поиск - что это, как работает и чем отличается от просто поиска
Семантический поиск - что это, как работает и чем отличается от просто поискаVitebsk Miniq
 
Локализационное тестирование - это не только перевод
Локализационное тестирование - это не только переводЛокализационное тестирование - это не только перевод
Локализационное тестирование - это не только переводVitebsk Miniq
 
ISTQB Сертификация тестировщиков: быть или не быть?
ISTQB Сертификация тестировщиков: быть или не быть?ISTQB Сертификация тестировщиков: быть или не быть?
ISTQB Сертификация тестировщиков: быть или не быть?Vitebsk Miniq
 
Apollo GraphQL Federation
Apollo GraphQL FederationApollo GraphQL Federation
Apollo GraphQL FederationVitebsk Miniq
 
Who is a functional tester
Who is a functional testerWho is a functional tester
Who is a functional testerVitebsk Miniq
 
Вперед в прошлое
Вперед в прошлоеВперед в прошлое
Вперед в прошлоеVitebsk Miniq
 
CloudFormation experience
CloudFormation experienceCloudFormation experience
CloudFormation experienceVitebsk Miniq
 
Learning Intelligence: the story of mine
Learning Intelligence: the story of mineLearning Intelligence: the story of mine
Learning Intelligence: the story of mineVitebsk Miniq
 
Как программисты могут спасти мир
Как программисты могут спасти мирКак программисты могут спасти мир
Как программисты могут спасти мирVitebsk Miniq
 
Использование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложенийИспользование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложенийVitebsk Miniq
 
Distributed tracing system in action. Instana Tracing.
Distributed tracing system in action. Instana Tracing.Distributed tracing system in action. Instana Tracing.
Distributed tracing system in action. Instana Tracing.Vitebsk Miniq
 
Насорил - убери!
Насорил - убери!Насорил - убери!
Насорил - убери!Vitebsk Miniq
 
Styled-components. Что? Когда? И зачем?
Styled-components. Что? Когда? И зачем?Styled-components. Что? Когда? И зачем?
Styled-components. Что? Когда? И зачем?Vitebsk Miniq
 
Красные флаги и розовые очки
Красные флаги и розовые очкиКрасные флаги и розовые очки
Красные флаги и розовые очкиVitebsk Miniq
 
CSS. Практика
CSS. ПрактикаCSS. Практика
CSS. ПрактикаVitebsk Miniq
 

More from Vitebsk Miniq (20)

Runtime compilation and code execution in groovy
Runtime compilation and code execution in groovyRuntime compilation and code execution in groovy
Runtime compilation and code execution in groovy
 
The 5 Laws of Software Estimates
The 5 Laws of Software EstimatesThe 5 Laws of Software Estimates
The 5 Laws of Software Estimates
 
Latest & Greatest Observability Release 7.9
Latest & Greatest Observability Release 7.9Latest & Greatest Observability Release 7.9
Latest & Greatest Observability Release 7.9
 
Тестирование Spring-based приложений
Тестирование Spring-based приложенийТестирование Spring-based приложений
Тестирование Spring-based приложений
 
Семантический поиск - что это, как работает и чем отличается от просто поиска
Семантический поиск - что это, как работает и чем отличается от просто поискаСемантический поиск - что это, как работает и чем отличается от просто поиска
Семантический поиск - что это, как работает и чем отличается от просто поиска
 
Локализационное тестирование - это не только перевод
Локализационное тестирование - это не только переводЛокализационное тестирование - это не только перевод
Локализационное тестирование - это не только перевод
 
ISTQB Сертификация тестировщиков: быть или не быть?
ISTQB Сертификация тестировщиков: быть или не быть?ISTQB Сертификация тестировщиков: быть или не быть?
ISTQB Сертификация тестировщиков: быть или не быть?
 
Apollo GraphQL Federation
Apollo GraphQL FederationApollo GraphQL Federation
Apollo GraphQL Federation
 
Who is a functional tester
Who is a functional testerWho is a functional tester
Who is a functional tester
 
Crawling healthy
Crawling healthyCrawling healthy
Crawling healthy
 
Вперед в прошлое
Вперед в прошлоеВперед в прошлое
Вперед в прошлое
 
CloudFormation experience
CloudFormation experienceCloudFormation experience
CloudFormation experience
 
Learning Intelligence: the story of mine
Learning Intelligence: the story of mineLearning Intelligence: the story of mine
Learning Intelligence: the story of mine
 
Как программисты могут спасти мир
Как программисты могут спасти мирКак программисты могут спасти мир
Как программисты могут спасти мир
 
Использование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложенийИспользование AzureDevOps при разработке микросервисных приложений
Использование AzureDevOps при разработке микросервисных приложений
 
Distributed tracing system in action. Instana Tracing.
Distributed tracing system in action. Instana Tracing.Distributed tracing system in action. Instana Tracing.
Distributed tracing system in action. Instana Tracing.
 
Насорил - убери!
Насорил - убери!Насорил - убери!
Насорил - убери!
 
Styled-components. Что? Когда? И зачем?
Styled-components. Что? Когда? И зачем?Styled-components. Что? Когда? И зачем?
Styled-components. Что? Когда? И зачем?
 
Красные флаги и розовые очки
Красные флаги и розовые очкиКрасные флаги и розовые очки
Красные флаги и розовые очки
 
CSS. Практика
CSS. ПрактикаCSS. Практика
CSS. Практика
 

Обзор протокола OAuth 2.0. Способы внедрения в различные типы приложений

  • 2. OAuth – протокол авторизации. Он позволяет выдать одному сервису/приложению права на доступ к ресурсам пользователя на другом сервисе. Протокол избавляет от необходимости доверять приложению логин и пароль, а также позволяет выдавать ограниченный набор прав (например, только на чтение ограниченного набора ресурсов).
  • 3. OAuth 2.0 основан на использовании базовых веб-технологий (HTTP). Использование возможно: WEB-сайты Мобильные приложения Desktop приложения и т.п.
  • 5. Виды авторизаций:  с помощью логина и пароля  для приложений с серверной частью  для полностью клиентских приложений  с возможностью восстановления предыдущей авторизации
  • 6. Client ID Secret Key (Shared Secret Key) Authorization Grants Access Token Refresh Token
  • 7.  Resource Owner – владелец ресурса  Resource Server – сервер, который содержит защищаемые ресурсы. Сервер поддерживает функции по предоставлению ресурсов по access token  Client – приложение, делающее запросы к защищенным ресурсам от имени владельца этих ресурсов и с его разрешения  Authorization Server – выдает access tokens клиенту после успешной аутентификации владельца ресурсов и получения разрешений.
  • 9. Client Authorization Server Resource Server Authorization Grant Access Token & Refresh Token Refresh Token Access Token & Optional Refresh Token Access Token Protected Resource Access Token Invaid Token Error
  • 10. Java:  Apache Amber (draft 22)  Spring Security for OAuth  Apis Authorization Server (v2-31)  Restlet Framework (draft 30)  Apache CXF .NET:  .NET DotNetOpenAuth
  • 11. Java:  Apache Amber (draft 22)  Spring Social  Spring Security for OAuth  Restlet Framework (draft 30) .NET:  DotNetOpenAuth  Spring Social for .NET
  • 12. Авторизация без использования логина и пароля пользователя предоставляет множество преимуществ: Безопасность. Повышение лояльности пользователей. Удобство для пользователей.
  • 13. В реализации OAuth 2.0 можно выделить следующие отрицательные моменты: Взаимодействие Ограниченный срок действия маркеров