oauth 2.0 refresher (russian)

38
AdWords API Workshops – All rights reserved

Upload: marcwan

Post on 21-Jan-2015

389 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Page 2: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

OAuth 2.0

+Paul Matthews, Google, Inc.

Page 3: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

1. Что такое OAuth 2.0?

2. Подготовка

3. Получение доступа

4. Подробнее о процессе

5. Рекомендации

План

1

2

3

4

5

Page 4: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Что такое OAuth 2.0?

Page 5: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Что такое OAuth 2.0?

● Метод авторизации для AdWords API

● Простой

● Безопасный

● Стандартный

Page 6: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

● Нет Логинов и Паролей

● Только токены (строки)

● Управление доступом

● Ограничение области доступа

● Простота отзыва

Безопасность OAuth2

Page 7: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

OAuth2 -- это просто!

Работа с AdWords API

Получение доступаПодтвержение пользователя

Page 8: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Стандарт OAuth2

● Уже видели такой запрос?

● Подтвержение пользователя

● Accept

● Cancel

Page 9: OAuth 2.0   refresher (russian)

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

Page 10: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

● refresh_token

● Для генерации access_token

● Без срока действия

● Для хранения

● access_token

● Для выполнения запросов

● Действителен час

Токены OAuth2.0

Page 11: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

● refresh_token

● Для генерации access_token

● Без срока действия

● Для хранения

● access_token

● Для выполнения запросов

● Действителен час

Токены OAuth2.0

Page 12: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

● access_token

● Для выполнения запросов

● Действителен час

Токены OAuth2.0

● refresh_token

● Для генерации access_token

● Без срока действия

● Для хранения

Page 13: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Подготовка

Page 14: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

http://code.google.com/apis/console

● Необходим идентификатор приложения● client_id● client_secret

Зарегистрируйте приложение

Page 15: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Создайте новый проект Google API Console

Page 16: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Создайте идентификатор OAuth 2.0

Page 17: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Выберите тип приложения

Page 18: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

“Web server” или “installed application”?

Installed application если нужен только один набор токенов для авторизации (используется МСС)

Web server application если необходимо использовать разные токены для каждого аккаунта

Page 19: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Готово!

Page 20: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Получения доступаaccess_token & refresh_token

Page 21: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Зачем нужен Access Token?

Access & Refresh TokensЗапрос разрешения

Page 22: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Использование библиотек

● С библиотеками

● Или без?

Page 23: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

● Подробности зависят от конкретной библиотеки

● Например:

● setup_oauth2

● Авторизация

● Обновление конфигурации

Библиотеки упрощают задачу

Page 24: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Подробнее о процессе

Page 25: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

1. Генерация URL

2. Получение согласия

3. Ввод кода авторизации

4. Обмен кода на токеты

5. Хранение токенов

Как получить Access Token вручную

Page 26: OAuth 2.0   refresher (russian)

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

Page 27: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

● Направление пользователя

● Подтверждение

2. Получение согласия

Page 28: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

> Enter authorization code here:

4/v6xr77ewYqhvHSyW6UJ1w7jKwAzu

3. Получение кода авторизации

Page 29: OAuth 2.0   refresher (russian)

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. Обмен кода на токен

Page 30: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

{"access_token" : "yaxx.xxxxxxxxxxxx","token_type" : "Bearer","expires_in" : 3600,"refresh_token" : "1/xxxxxxxxxxxxxxxxxxxg"

}

5. Хранение токенов

Page 31: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Offline access -- когда есть фоновые задачи, выполняемые независимо от пользовател

Online access -- когда пользователь все время присутствует (активно работает с приложением)

Offline или Online?

Page 32: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Рекомендации

Page 33: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

● Используйте offline access type для получения refresh_token

● Храните refresh_token чтобы обновлять access_token

● Используйте структуру MCC и авторизацию на уровне MCC

● Храните так же acess_token и timestamp -- меньше запросов

● Используйте один набор для авторизации между всеми потоками

Рекомендации

Page 34: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

● AuthenticationError.OAUTH_TOKEN_INVALID

○ Причина: срок действия Access Token истек○ Решение: обновите токен с помощью Refresh token

● AuthenticationError.INVALID_GRANT_ERROR

○ Причина: пользователь отозвал разрешение○ Решение: повторите авторизацию и получите новое

Возможные ошибки

Page 35: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Полезные ресурсы

Page 37: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved

Вопросы?

Page 38: OAuth 2.0   refresher (russian)

AdWords API Workshops – All rights reserved