oauth 2.0 refresher (russian)
DESCRIPTION
TRANSCRIPT
AdWords API Workshops – All rights reserved
AdWords API Workshops – All rights reserved
OAuth 2.0
+Paul Matthews, Google, Inc.
AdWords API Workshops – All rights reserved
1. Что такое OAuth 2.0?
2. Подготовка
3. Получение доступа
4. Подробнее о процессе
5. Рекомендации
План
1
2
3
4
5
AdWords API Workshops – All rights reserved
Что такое OAuth 2.0?
AdWords API Workshops – All rights reserved
Что такое OAuth 2.0?
● Метод авторизации для AdWords API
● Простой
● Безопасный
● Стандартный
AdWords API Workshops – All rights reserved
● Нет Логинов и Паролей
● Только токены (строки)
● Управление доступом
● Ограничение области доступа
● Простота отзыва
Безопасность OAuth2
AdWords API Workshops – All rights reserved
OAuth2 -- это просто!
Работа с AdWords API
Получение доступаПодтвержение пользователя
AdWords API Workshops – All rights reserved
Стандарт OAuth2
● Уже видели такой запрос?
● Подтвержение пользователя
● Accept
● Cancel
AdWords API Workshops – All rights reserved
2) Accept Consent
3) Exchange Code
Процесс OAuth2
Your Application
The MCC User
Google Servers
1) Build URL 4) Make Request 5) Refresh Access
OAuth2 Servers
The AdWords API
Grant Access Interact with the AdWords API
AdWords API Workshops – All rights reserved
● refresh_token
● Для генерации access_token
● Без срока действия
● Для хранения
● access_token
● Для выполнения запросов
● Действителен час
Токены OAuth2.0
AdWords API Workshops – All rights reserved
● refresh_token
● Для генерации access_token
● Без срока действия
● Для хранения
● access_token
● Для выполнения запросов
● Действителен час
Токены OAuth2.0
AdWords API Workshops – All rights reserved
● access_token
● Для выполнения запросов
● Действителен час
Токены OAuth2.0
● refresh_token
● Для генерации access_token
● Без срока действия
● Для хранения
AdWords API Workshops – All rights reserved
Подготовка
AdWords API Workshops – All rights reserved
http://code.google.com/apis/console
● Необходим идентификатор приложения● client_id● client_secret
Зарегистрируйте приложение
AdWords API Workshops – All rights reserved
Создайте новый проект Google API Console
AdWords API Workshops – All rights reserved
Создайте идентификатор OAuth 2.0
AdWords API Workshops – All rights reserved
Выберите тип приложения
AdWords API Workshops – All rights reserved
“Web server” или “installed application”?
Installed application если нужен только один набор токенов для авторизации (используется МСС)
Web server application если необходимо использовать разные токены для каждого аккаунта
AdWords API Workshops – All rights reserved
Готово!
AdWords API Workshops – All rights reserved
Получения доступаaccess_token & refresh_token
AdWords API Workshops – All rights reserved
Зачем нужен Access Token?
Access & Refresh TokensЗапрос разрешения
AdWords API Workshops – All rights reserved
Использование библиотек
● С библиотеками
● Или без?
AdWords API Workshops – All rights reserved
● Подробности зависят от конкретной библиотеки
● Например:
● setup_oauth2
● Авторизация
● Обновление конфигурации
Библиотеки упрощают задачу
AdWords API Workshops – All rights reserved
Подробнее о процессе
AdWords API Workshops – All rights reserved
1. Генерация URL
2. Получение согласия
3. Ввод кода авторизации
4. Обмен кода на токеты
5. Хранение токенов
Как получить Access Token вручную
AdWords API Workshops – All rights reserved
https://accounts.google.com/o/oauth2/auth?
access_type=offline&
scope=https://adwords.google.com/api/adwords&
redirect_uri=urn:ietf:wg:oauth:2.0:oob&
response_type=code&
client_id=xxxxxxx.apps.googleusercontent.com
1. Генерация URL
AdWords API Workshops – All rights reserved
● Направление пользователя
● Подтверждение
2. Получение согласия
AdWords API Workshops – All rights reserved
> Enter authorization code here:
4/v6xr77ewYqhvHSyW6UJ1w7jKwAzu
3. Получение кода авторизации
HTML
AdWords API Workshops – All rights reserved
POST /o/oauth2/token HTTP/1.1 Host: accounts.google.com Content-Type: application/x-www-form-urlencoded code=4/v6xr77ewYqhvHSyW6UJ1w7jKwAzu& client_id=xxxxxxx.apps.googleusercontent.com& client_secret={client_secret}& redirect_uri=& grant_type=authorization_code
4. Обмен кода на токен
AdWords API Workshops – All rights reserved
{"access_token" : "yaxx.xxxxxxxxxxxx","token_type" : "Bearer","expires_in" : 3600,"refresh_token" : "1/xxxxxxxxxxxxxxxxxxxg"
}
5. Хранение токенов
AdWords API Workshops – All rights reserved
Offline access -- когда есть фоновые задачи, выполняемые независимо от пользовател
Online access -- когда пользователь все время присутствует (активно работает с приложением)
Offline или Online?
AdWords API Workshops – All rights reserved
Рекомендации
AdWords API Workshops – All rights reserved
● Используйте offline access type для получения refresh_token
● Храните refresh_token чтобы обновлять access_token
● Используйте структуру MCC и авторизацию на уровне MCC
● Храните так же acess_token и timestamp -- меньше запросов
● Используйте один набор для авторизации между всеми потоками
Рекомендации
AdWords API Workshops – All rights reserved
● AuthenticationError.OAUTH_TOKEN_INVALID
○ Причина: срок действия Access Token истек○ Решение: обновите токен с помощью Refresh token
● AuthenticationError.INVALID_GRANT_ERROR
○ Причина: пользователь отозвал разрешение○ Решение: повторите авторизацию и получите новое
Возможные ошибки
AdWords API Workshops – All rights reserved
Полезные ресурсы
https://developers.google.com/accounts/docs/OAuth2
https://developers.google.com/accounts/docs/OAuth2WebServer
https://developers.google.com/accounts/docs/OAuth2InstalledApp
https://developers.google.com/adwords/api/docs/authentication#oauth
https://code.google.com/apis/console
AdWords API Workshops – All rights reserved
Вопросы?
AdWords API Workshops – All rights reserved