OAuth

Термины

В данном примере пользователь имеет на Google Drive фотографии, которые хочет распечатать на стороннем сервисе

Protected Resource - фотографии на Google Drive

Resource Owner - пользователь которому принадлежат фото на диске. У него есть доступ к Protected Resource и возоможность выдавать доступ к нему.

Resource Server - сервис на котором хранится Protected Resource. В нашем случае это Google Drive

Client - приложение, которому нужен доступ к Protected Resource. В нашем случае это Printing Service

Authorization Server - сервис, который отвечает за то, что доступ к Protected Resource получает только авторизованные пользователи. Он выдаёт Access Tokens клиенту

Процесс

Вариант 1: Authorization Code Flow

1) Пользователь (Resource Owner) обращается к клиенту (Client) с запросом о печате своих фото (Protected Resource) с Google Drive (Resource Server)

User: …«Напечатай фотографии»… → Client

2) Printing Service (Client) обращается к Authorization Server с сообщением о том, что ему нужно распечатать фотоки пользователя (Resource Owner) и передаёт данные о пользователе и о фотографиях, доступ к которым ему нужен.

Client: … «Нужен доступ к таким-то фотографиям этого пользователя»… → Authorization Server

3) Authorization Server обращается к Resource Owner и сообщает, что Client запросил доступ к Protected Resourse и хочет выполнить определённые действия. Вопрос - согласен ли на это Resource Owner

Authorization Server: …«Согласен ли ты разрешить определённые действия с Protected Resource?»… → Resource Owner

4) Resource Owner отвечает, что всё ОК

Resource Owner: …« Да, я согласен предоставить определённый доступ к определённым Protected Resource»… → Authorization Server

5) Authorizaion Server отправляет клиенту (Client) Authorization Token . Обычно это короткоживущий токен.

Authorization Server: …Authorization Token… → Client

6) Client запрашивает у Autorization Server Access Token . К этому запросу он присоединяет полученный ранее Authorization Token .

Client: …« Дай мне Access Token у меня есть Authorization Token, вот он: » + Authorization Token… → Authorization Server

7) Authorizaion Server проверяет Authorization Token и отправляет на Client Access Token

Authorization Server: …Access Token… → Client

8) Client и отправляет на Resource Server Access Token и запрашивает доступ к Protected Resource

Client: …«Дай мне доступ к Protected Resource, у меня есть Access Token вот он:» + Access Token … → Resource Server

9) Resource Server проверяет Access Token и выдает Client доступ к Protected Resource

Resource Server: … Доступ к Protected Resource … → Client

Кратко

Откуда Куда Сообщение
Resource Owner Client Сделай что-то с моим Protected Resource
Client Authorization Server Нужен доступ к Protected Resource
Authorization Server Resource Owner Давать Client доступ к твоему Protected Resource?
Resource Owner Authorization Server Давай
Authorization Server Client Authorization Token
Client Authorization Server Authorization Token + Дай мне Access Token
Authorization Server Client Access Token
Client Resource Server Access Token + Дай мне доступ к Protected Resource
Resource Server Client Доступ к Protected Resource
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@eth1.ru если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: