SlideShare a Scribd company logo
1 of 33
Integrity Vision / INTEGRITY.COM.UA / 18 жовтня 2017
Безпека вашого
публічного API
Майстренко Олекс
• Oleks Maistrenko
• CTO @ Integrity Vision
• BPM, Enterprise Integration, SOA,
API, automation
✉️ om@integrity.com.ua
Що таке API?
• API – Application Programming Interface, набір
визначень взаємодії різнотипного програмного
забезпечення [Wikipedia]
• API Економіка — це економіка, в якій компанії
виставляють власні бізнес-активи (доступ до
даних) або сервіси у вигляді (Web) API третім
компаніям з метою отримання доданої вартості
за рахунок створення нових сервісів та активів
нового класу
API Економіка
Source: http://www.apiacademy.co/resources/api-strategy-lesson-201-private-apis-vs-open-apis/
Third-Party
Developer
Community
Open
API
Backend
Systems
Mobile & Web
Applications
Extend
Customer
Reach
Increase
Revenue
Stimulate
Innovation
Приклади API
• : більше 18000 описів API
• Google Maps, Twitter, YouTube, Flickr, Facebook,
Twilio, last.fm, eBay, Twilio SMS, Microsoft Bing
Maps, del.icio.us, Foursquare, DocuSign
Enterprise, Amazon S3, …
• Популярні українські API: ПриватБанк, OTP,
Rozetka, Нова Пошта, Meest Express, Liqpay, …
• Checkpoint Management API (Gaia R80, 31-Mar-2016)
Публічні API щодня
Використання API та
залучення IT Security в його розробку
Source: Ovum, “The Inconvenient Truth About API Security”
Різні аудиторії різного API
Внутрішній API,
закритий (приватний)
API для партнерів, закритий
Публічний API, відкритий
Що спільного у цих компаній?
Мережа Starbucks
підтримала цифровий тренд
та отримала $1.6млрд-ний
транзакційний бізнес, що
самостостійно обслуговує
21% транзакцій
Автомобільна компанія
пропонує використовувати
дані з автомобілей,
оптимізує досвід
експлуатації машин, продає
дані по використанню
машин своїм партнерам
Банк стимулює іновації,
проводить хакатони,
інтегрує програму нагород з
парнерами роздрібної
торгівлі
ЦИФРОВА ПЛАТФОРМА, ЩО ПОБУДОВАНА НА БАЗІ API СТРАТЕГІЇ
API стратегія
Доступність програмних
додатків, даних для
мобільних пристроїв, IoT та
різноманітних хмарних
сервісів
ПУБЛІКАЦІЯ API ДЛЯ
РОЗШИРЕННЯ
ОХОПЛЕННЯ БРЕНДУ
Використання екосистеми
розробників та партнерів для
створення сервісів й
продуктів на базі наявних
активів та сервісів
ШВИДКІСТЬ РОЗРОБКИ
За рахунок організації
бібліотек, стандартизації API
та повторного використання
програмного коду
СТВОРЕННЯ НОВОГО
БІЗНЕСУ
Монетизація доступу до
активів, створення нових
продуктів та створення нових
сервісів
01 02
04 03
БЕЗПЕЧНЕ НАДАННЯ
СЕРВІСІВ ТА ДАНИХ
API Management
Програмні
додатки
Дані
Процеси
EnterpriseServiceBus
SecurityGateway
Зовнішні
користувачі
Партнери,
внутрішні
користувачі
Портал
розробника
Аналітика
Аутентифікація
та Авторизація
Аудит
Білінг
Ринок API Management
Source: IDC, “Worldwide API Management Market Share, 2015: Year of consolidation”
Основні технологічні задачі
Source: SmartBear “State of API Report 2016”
SOAP vs REST
для публічного API
Source: Cloud Elements, “The State of API Integration Report”
Основні ризики безпеки REST API
1. API з HTTPS, але без аутентифікації
2. API без обмеження кількості або частоти
викликів
• Тільки 45% API Managment рішень в
продуктиві мають сконфігуроване обмеження
кількість викликів
3. Реалізація логіки та безпеки в неправильному
місці
Source: https://apifriends.com/2017/08/03/rest-api-security/,
https://resources.distilnetworks.com/all-distil-blog-posts/infographic-the-inconvenient-truth-about-api-security
Ризик #1. API з HTTPS,
але без аутентифікації
Source: https://www.troyhunt.com/controlling-vehicle-features-of-nissan/
Ризик #2. API без обмеження
кількості або частоти викликів
Source: http://mashable.com/2014/08/25/national-weather-service-down-android-app/#EJDV0UykT8qm
Ризик #3. Реалізація логіки та
безпеки в неправильному місці
Source: http://www.ifc0nfig.com/dominos-pizza-and-payments/
Інші ризики безпеки REST API
1. Незахищені ідентифікаційна інформація та ключі
2. Незашифровані дані (payload)
3. Неправильне використання HTTPS
• Реалізація Certificate Key Pinning
4. Слабкі ключі API
• Інколи API-ключ надсилається як частина URL-адреси,
що відображається у журналах проксі-серверів і легко
копіюється
Source: https://apifriends.com/2017/08/03/rest-api-security/
Як організувати доступ до API?
Авторизація та аутентифікація
Source: Cloud Elements, “The State of API Integration Report”
• Аутентифікація та авторизація —
фундамент для надання публічного
доступу до API, що потрібні для знання
який саме клієнт використовує API й до
чого у нього має бути доступ
• Зважаючи на потреби безпечного
доступа до API, більшість організацій
відмовляються від способу базової
аутентифікації, вимагаючи додаткові
кроки для верифікації особистості клієнта
The OAuth 2.0
Authorization Framework
The OAuth 2.0 authorization framework enables a third-party application to
obtain limited access to an HTTP service, either on behalf of a resource owner by
orchestrating an approval interaction between the resource owner and the HTTP
service, or by allowing the third-party application to obtain access on its own
behalf.
Source: IETF OAuth2 (http://datatracker.ietf.org/doc/rfc6749/)
OAuth 2.0: framework de-facto
• OAuth 2.0 використовує токени, а не покладається на ім’я
користувача та пароль
• Можливість використання конкретного токену доступу (access
tokern) може бути обмежена у часі, або ж мати інші критерії
валідності (наприклад, розташування), таким чином доступ може
бути легко скасований, якщо такі критерії не будуть виконані
• OAuth 2.0 дозволяє провайдеру надавати дозвіл на доступ до
конкретних функцій API або даних за допомогою “областей”
(наприклад, право виключно на читання даних через API, або
доступ на читання і запису через API)
• Рівень гнучкості, запропонований OAuth 2.0, робить його ідеальним
вибором для аутентифікації та авторизації клієнтів
Ролі OAuth 2.0
Власник ресурсів
Resource owner
Програма-клієнт
Client application
Авторизаційний сервер
Authorization server
Cервер ресурсів
Resource server
Source: IETF OAuth2 (http://datatracker.ietf.org/doc/rfc6749/)
Resource
owner
Client
application
Authorization
server
Resource
server
Source: IETF OAuth2 (http://datatracker.ietf.org/doc/rfc6749/)
(A) Authorization Request
(B) Authorization Grant
(C) Authorization Grant
(D) Access Token
(E) Access Token
(F) Protected Resource
OAuth 2.0 провайдери
Source: Wikipedia (https://en.wikipedia.org/wiki/List_of_OAuth_providers)
Зоопарк
• OAuth (Open Authorization) — це фреймворк для
авторизації ресурсів
• OpenID Connect — це інтероперабельний протокол
аутентифікації, що базується на специфікації OAuth 2.0
• JSON Web Token (JWT) — це JSON об’єкт, що
визначений як безпечний спосіб представлення
інформації між двома сторонами; JWT складається із
заголовку, корисної інформації та підпису
• SAML (Security Assertion Markup Language) є загальним
стандартом, який охоплює профілі, прив'язки та
конструкції для реалізації Single Sign On (SSO),
федерації та управління ідентифікацією
Source: https://spin.atomicobject.com/2016/05/30/openid-oauth-saml/
OAuth 2.0 OpenId SAML
Токен JSON та SAML JSON XML
Авторизація Так Ні Так
Аутентифікація
Псевдо-
аутентифікація
Так Так
Рік створення 2005 2006 2001
Версія OAuth2 OpenID Connect SAML 2.0
Транспорт HTTP
HTTP (GET,
POST)
HTTP, SOAP
Основне
призначення
Авторизація API
SSO для клієнтських
додатків
SSO для
enterprise
• Публічне API — вже не тренд, а реальність
• Використовуйте наявні рішення, не вигадуйте
велосипед
• Для надання публічного доступу до API
використовуйте наявні API Management
рішення
• Для захищеності й зручності користування
вашим API використовуйте наявні стандарти:
OAuth 2.0 та OpenID Connect
BankID: OAuth 2.0
Source: https://id.bank.gov.ua
BankID:
як використовується OAuth 2.0
• Інформація:
• ПІБ, номер мобільного телефону, ідентифікаційний код, дата
народження, стать, електронна адреса, фактична адреса та
адреса народження, паспорт, закордонний паспорт, посвідчення
особи
• Авторизація & Ресурси:
• ПриватБанк, А-банк, Банк Південний, Конкорд, Ощадбанк
• Для простоти використання недостатньо використати OAuth 2.0,
потрібно мати потрібні доступні сервери авторизації
Oleks Maistrenko
✉️ om@integrity.com.ua
Дякую за увагу

More Related Content

Similar to UA.SC 2017: Безпека вашого публічного API

IR System
IR SystemIR System
IR Systemsnipter
 
Можливості foursquare API
Можливості foursquare APIМожливості foursquare API
Можливості foursquare APIartiom_sue
 
5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPCПупена Александр
 
Web service lecture
Web service lectureWeb service lecture
Web service lectureeleksdev
 
11 web services
11 web services11 web services
11 web serviceseleksdev
 
08 kulchytskyy kyiv 21 october
08 kulchytskyy  kyiv 21 october08 kulchytskyy  kyiv 21 october
08 kulchytskyy kyiv 21 octoberOleksandrZ
 
Автомат розроб сайтів_огляд_web2
Автомат розроб сайтів_огляд_web2Автомат розроб сайтів_огляд_web2
Автомат розроб сайтів_огляд_web2Ирина Слуцкая
 
"Simplifying the Complex: Effective Management of Large-Scale PHP Projects", ...
"Simplifying the Complex: Effective Management of Large-Scale PHP Projects", ..."Simplifying the Complex: Effective Management of Large-Scale PHP Projects", ...
"Simplifying the Complex: Effective Management of Large-Scale PHP Projects", ...Fwdays
 
Робота із malware. McAfee ATD+TIE+DXL/OpenDXL
Робота із malware. McAfee ATD+TIE+DXL/OpenDXLРобота із malware. McAfee ATD+TIE+DXL/OpenDXL
Робота із malware. McAfee ATD+TIE+DXL/OpenDXLVladyslav Radetsky
 
Open data Processing API
Open data Processing APIOpen data Processing API
Open data Processing APIEGAP Vinnytsia
 
""I'll just run my task in the cloud" - Legends and myths of security in Serv...
""I'll just run my task in the cloud" - Legends and myths of security in Serv...""I'll just run my task in the cloud" - Legends and myths of security in Serv...
""I'll just run my task in the cloud" - Legends and myths of security in Serv...Fwdays
 
Стандарт верифікації безпеки веб-додатків ASVS 3.0
Стандарт верифікації безпеки веб-додатків ASVS 3.0Стандарт верифікації безпеки веб-додатків ASVS 3.0
Стандарт верифікації безпеки веб-додатків ASVS 3.0uisgslide
 
Организация, культура, и управление кибер-безопасностью
Организация, культура, и управление кибер-безопасностьюОрганизация, культура, и управление кибер-безопасностью
Организация, культура, и управление кибер-безопасностьюVlad Styran
 
Web Penetration Testing Report
Web Penetration Testing ReportWeb Penetration Testing Report
Web Penetration Testing ReportKR. Laboratories
 
Monitoring_authorized_systems_media-content_UA.pptx.pdf
Monitoring_authorized_systems_media-content_UA.pptx.pdfMonitoring_authorized_systems_media-content_UA.pptx.pdf
Monitoring_authorized_systems_media-content_UA.pptx.pdfnadiyadutchak
 
Android Programming Intro
Android Programming IntroAndroid Programming Intro
Android Programming IntroMaksym Davydov
 
Lec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування edLec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування edcit-cit
 

Similar to UA.SC 2017: Безпека вашого публічного API (20)

Web 2 0
Web 2 0Web 2 0
Web 2 0
 
Web 2 0
Web 2 0Web 2 0
Web 2 0
 
IR System
IR SystemIR System
IR System
 
Можливості foursquare API
Можливості foursquare APIМожливості foursquare API
Можливості foursquare API
 
5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC5 Підсистема введення/виведення. OPC
5 Підсистема введення/виведення. OPC
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
 
11 web services
11 web services11 web services
11 web services
 
08 kulchytskyy kyiv 21 october
08 kulchytskyy  kyiv 21 october08 kulchytskyy  kyiv 21 october
08 kulchytskyy kyiv 21 october
 
Автомат розроб сайтів_огляд_web2
Автомат розроб сайтів_огляд_web2Автомат розроб сайтів_огляд_web2
Автомат розроб сайтів_огляд_web2
 
"Simplifying the Complex: Effective Management of Large-Scale PHP Projects", ...
"Simplifying the Complex: Effective Management of Large-Scale PHP Projects", ..."Simplifying the Complex: Effective Management of Large-Scale PHP Projects", ...
"Simplifying the Complex: Effective Management of Large-Scale PHP Projects", ...
 
Робота із malware. McAfee ATD+TIE+DXL/OpenDXL
Робота із malware. McAfee ATD+TIE+DXL/OpenDXLРобота із malware. McAfee ATD+TIE+DXL/OpenDXL
Робота із malware. McAfee ATD+TIE+DXL/OpenDXL
 
Open data Processing API
Open data Processing APIOpen data Processing API
Open data Processing API
 
""I'll just run my task in the cloud" - Legends and myths of security in Serv...
""I'll just run my task in the cloud" - Legends and myths of security in Serv...""I'll just run my task in the cloud" - Legends and myths of security in Serv...
""I'll just run my task in the cloud" - Legends and myths of security in Serv...
 
Стандарт верифікації безпеки веб-додатків ASVS 3.0
Стандарт верифікації безпеки веб-додатків ASVS 3.0Стандарт верифікації безпеки веб-додатків ASVS 3.0
Стандарт верифікації безпеки веб-додатків ASVS 3.0
 
Presentation
PresentationPresentation
Presentation
 
Организация, культура, и управление кибер-безопасностью
Организация, культура, и управление кибер-безопасностьюОрганизация, культура, и управление кибер-безопасностью
Организация, культура, и управление кибер-безопасностью
 
Web Penetration Testing Report
Web Penetration Testing ReportWeb Penetration Testing Report
Web Penetration Testing Report
 
Monitoring_authorized_systems_media-content_UA.pptx.pdf
Monitoring_authorized_systems_media-content_UA.pptx.pdfMonitoring_authorized_systems_media-content_UA.pptx.pdf
Monitoring_authorized_systems_media-content_UA.pptx.pdf
 
Android Programming Intro
Android Programming IntroAndroid Programming Intro
Android Programming Intro
 
Lec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування edLec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування ed
 

UA.SC 2017: Безпека вашого публічного API

  • 1. Integrity Vision / INTEGRITY.COM.UA / 18 жовтня 2017 Безпека вашого публічного API Майстренко Олекс
  • 2. • Oleks Maistrenko • CTO @ Integrity Vision • BPM, Enterprise Integration, SOA, API, automation ✉️ om@integrity.com.ua
  • 3. Що таке API? • API – Application Programming Interface, набір визначень взаємодії різнотипного програмного забезпечення [Wikipedia] • API Економіка — це економіка, в якій компанії виставляють власні бізнес-активи (доступ до даних) або сервіси у вигляді (Web) API третім компаніям з метою отримання доданої вартості за рахунок створення нових сервісів та активів нового класу
  • 5. Приклади API • : більше 18000 описів API • Google Maps, Twitter, YouTube, Flickr, Facebook, Twilio, last.fm, eBay, Twilio SMS, Microsoft Bing Maps, del.icio.us, Foursquare, DocuSign Enterprise, Amazon S3, … • Популярні українські API: ПриватБанк, OTP, Rozetka, Нова Пошта, Meest Express, Liqpay, … • Checkpoint Management API (Gaia R80, 31-Mar-2016)
  • 7. Використання API та залучення IT Security в його розробку Source: Ovum, “The Inconvenient Truth About API Security”
  • 8. Різні аудиторії різного API Внутрішній API, закритий (приватний) API для партнерів, закритий Публічний API, відкритий
  • 9. Що спільного у цих компаній? Мережа Starbucks підтримала цифровий тренд та отримала $1.6млрд-ний транзакційний бізнес, що самостостійно обслуговує 21% транзакцій Автомобільна компанія пропонує використовувати дані з автомобілей, оптимізує досвід експлуатації машин, продає дані по використанню машин своїм партнерам Банк стимулює іновації, проводить хакатони, інтегрує програму нагород з парнерами роздрібної торгівлі ЦИФРОВА ПЛАТФОРМА, ЩО ПОБУДОВАНА НА БАЗІ API СТРАТЕГІЇ
  • 10. API стратегія Доступність програмних додатків, даних для мобільних пристроїв, IoT та різноманітних хмарних сервісів ПУБЛІКАЦІЯ API ДЛЯ РОЗШИРЕННЯ ОХОПЛЕННЯ БРЕНДУ Використання екосистеми розробників та партнерів для створення сервісів й продуктів на базі наявних активів та сервісів ШВИДКІСТЬ РОЗРОБКИ За рахунок організації бібліотек, стандартизації API та повторного використання програмного коду СТВОРЕННЯ НОВОГО БІЗНЕСУ Монетизація доступу до активів, створення нових продуктів та створення нових сервісів 01 02 04 03 БЕЗПЕЧНЕ НАДАННЯ СЕРВІСІВ ТА ДАНИХ
  • 12. Ринок API Management Source: IDC, “Worldwide API Management Market Share, 2015: Year of consolidation”
  • 13. Основні технологічні задачі Source: SmartBear “State of API Report 2016”
  • 14. SOAP vs REST для публічного API Source: Cloud Elements, “The State of API Integration Report”
  • 15. Основні ризики безпеки REST API 1. API з HTTPS, але без аутентифікації 2. API без обмеження кількості або частоти викликів • Тільки 45% API Managment рішень в продуктиві мають сконфігуроване обмеження кількість викликів 3. Реалізація логіки та безпеки в неправильному місці Source: https://apifriends.com/2017/08/03/rest-api-security/, https://resources.distilnetworks.com/all-distil-blog-posts/infographic-the-inconvenient-truth-about-api-security
  • 16. Ризик #1. API з HTTPS, але без аутентифікації Source: https://www.troyhunt.com/controlling-vehicle-features-of-nissan/
  • 17. Ризик #2. API без обмеження кількості або частоти викликів Source: http://mashable.com/2014/08/25/national-weather-service-down-android-app/#EJDV0UykT8qm
  • 18. Ризик #3. Реалізація логіки та безпеки в неправильному місці Source: http://www.ifc0nfig.com/dominos-pizza-and-payments/
  • 19. Інші ризики безпеки REST API 1. Незахищені ідентифікаційна інформація та ключі 2. Незашифровані дані (payload) 3. Неправильне використання HTTPS • Реалізація Certificate Key Pinning 4. Слабкі ключі API • Інколи API-ключ надсилається як частина URL-адреси, що відображається у журналах проксі-серверів і легко копіюється Source: https://apifriends.com/2017/08/03/rest-api-security/
  • 21. Авторизація та аутентифікація Source: Cloud Elements, “The State of API Integration Report” • Аутентифікація та авторизація — фундамент для надання публічного доступу до API, що потрібні для знання який саме клієнт використовує API й до чого у нього має бути доступ • Зважаючи на потреби безпечного доступа до API, більшість організацій відмовляються від способу базової аутентифікації, вимагаючи додаткові кроки для верифікації особистості клієнта
  • 22. The OAuth 2.0 Authorization Framework The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. Source: IETF OAuth2 (http://datatracker.ietf.org/doc/rfc6749/)
  • 23. OAuth 2.0: framework de-facto • OAuth 2.0 використовує токени, а не покладається на ім’я користувача та пароль • Можливість використання конкретного токену доступу (access tokern) може бути обмежена у часі, або ж мати інші критерії валідності (наприклад, розташування), таким чином доступ може бути легко скасований, якщо такі критерії не будуть виконані • OAuth 2.0 дозволяє провайдеру надавати дозвіл на доступ до конкретних функцій API або даних за допомогою “областей” (наприклад, право виключно на читання даних через API, або доступ на читання і запису через API) • Рівень гнучкості, запропонований OAuth 2.0, робить його ідеальним вибором для аутентифікації та авторизації клієнтів
  • 24. Ролі OAuth 2.0 Власник ресурсів Resource owner Програма-клієнт Client application Авторизаційний сервер Authorization server Cервер ресурсів Resource server Source: IETF OAuth2 (http://datatracker.ietf.org/doc/rfc6749/)
  • 25. Resource owner Client application Authorization server Resource server Source: IETF OAuth2 (http://datatracker.ietf.org/doc/rfc6749/) (A) Authorization Request (B) Authorization Grant (C) Authorization Grant (D) Access Token (E) Access Token (F) Protected Resource
  • 26. OAuth 2.0 провайдери Source: Wikipedia (https://en.wikipedia.org/wiki/List_of_OAuth_providers)
  • 27. Зоопарк • OAuth (Open Authorization) — це фреймворк для авторизації ресурсів • OpenID Connect — це інтероперабельний протокол аутентифікації, що базується на специфікації OAuth 2.0 • JSON Web Token (JWT) — це JSON об’єкт, що визначений як безпечний спосіб представлення інформації між двома сторонами; JWT складається із заголовку, корисної інформації та підпису • SAML (Security Assertion Markup Language) є загальним стандартом, який охоплює профілі, прив'язки та конструкції для реалізації Single Sign On (SSO), федерації та управління ідентифікацією
  • 28. Source: https://spin.atomicobject.com/2016/05/30/openid-oauth-saml/ OAuth 2.0 OpenId SAML Токен JSON та SAML JSON XML Авторизація Так Ні Так Аутентифікація Псевдо- аутентифікація Так Так Рік створення 2005 2006 2001 Версія OAuth2 OpenID Connect SAML 2.0 Транспорт HTTP HTTP (GET, POST) HTTP, SOAP Основне призначення Авторизація API SSO для клієнтських додатків SSO для enterprise
  • 29.
  • 30. • Публічне API — вже не тренд, а реальність • Використовуйте наявні рішення, не вигадуйте велосипед • Для надання публічного доступу до API використовуйте наявні API Management рішення • Для захищеності й зручності користування вашим API використовуйте наявні стандарти: OAuth 2.0 та OpenID Connect
  • 31. BankID: OAuth 2.0 Source: https://id.bank.gov.ua
  • 32. BankID: як використовується OAuth 2.0 • Інформація: • ПІБ, номер мобільного телефону, ідентифікаційний код, дата народження, стать, електронна адреса, фактична адреса та адреса народження, паспорт, закордонний паспорт, посвідчення особи • Авторизація & Ресурси: • ПриватБанк, А-банк, Банк Південний, Конкорд, Ощадбанк • Для простоти використання недостатньо використати OAuth 2.0, потрібно мати потрібні доступні сервери авторизації

Editor's Notes

  1. Checkpoint API: https://sc1.checkpoint.com/documents/R80/APIs/index.html#ws
  2. The data: between September 2016 to March 2017 Over 107 public endpoints, 58 beta endpoints, 28,000 individual instances and 1.6 Billion+ API Calls
  3. Resource owner: An entity capable of granting access to a protected resource. When the resource owner is a person, it is referred to as an end-user. Resource server: The server hosting the protected resources, capable of accepting and responding to protected resource requests using access tokens. Client: An application making protected resource requests on behalf of the resource owner and with its authorization. Authorization server: The server issuing access tokens to the client after successfully authenticating the resource owner and obtaining authorization.