yandex oauth что это

Зачем именно вам нужен OAuth

Вначале были веб-сервисы. Они были многочисленны и непохожи друг на друга. Со временем некоторые исчезли, некоторые укрупнились, и что интересно — расселись по нишам. Есть социальные сети, фотохостинги, сервисы коротких сообщений и длинных текстов. А совсем недавно всё стало ещё интересней — сервисы стали становиться платформами. Теперь люди пользуются сервисами через другие сайты (фотохостинг сообщает о загруженной картинке в Твиттер), через настольные и мобильные программы (IM-клиент обновляет статус в Фейсбук).

Разработчики в Яндексе тоже активно превращают свои сервисы в удобные платформы, чтобы другие разработчики могли делать программы и сервисы, которые работают с вашими данными: фотографиями, блогом, почтой. Одна из ключевых точек этого процесса — авторизация.

Обязанности авторизации — быть безопасной и удобной. Если каждая программа или сервис просят у вас логин и пароль от Яндекса — это небезопасно, потому что с такими «ключами от всех дверей» они могут делать всё что угодно, например фото-программа может внезапно удалить вашу почту. Да и сам процесс ввода логина и пароля удобным не назовёшь, в особенности на мобильном телефоне.

Чтобы справиться с этими проблемами и был придуман единый стандартный протокол авторизации программ на сервисах — OAuth. С ним процесс авторизации, например, фото-программы на мобильном телефоне выглядит примерно так:

В идеале вы вообще не вводите своего пароля. В большинстве же случаев, если вы не авторизованы на самом Яндексе, вы вводите пароль именно на нём, а не где-то ещё. А программа получает только те права, которые запросила.

Если вы заподозрите, что программа или сайт делают что-то, чего вам не хочется, или ваш аккаунт на этом сайте взломали, вы можете аннулировать доступ, зайдя на oauth.yandex.ru.

OAuth-сервер работает в Яндексе уже некоторое время, и сейчас доступен для разработки на платформах Я.ру и Яндекс.Фоток. Ими, конечно, дело не ограничится, и мы со временем планируем внедрить поддержку этого протокола и на других наших сервисах. Почему именно OAuth? Потому что мы любим открытые стандарты и не хотим заставлять разработчиков делать отдельно «авторизацию для Яндекса», которая была бы не похожа ни на что другое. Кроме того, сам протокол довольно хорошо продуман.

В качестве резюме: требуйте свежий OAuth от разработчиков программ для Яндекса и старайтесь не писать свои пароли куда попало!

Иван Сагалаев, Иван Челюбеев и Григорий Бакунов, любители открытых протоколов

Источник

Веб-приложение

Получение токена для веб-приложения:

Пользователь разрешает доступ приложению.

Яндекс.OAuth перенаправляет пользователя на адрес, указанный в поле Callback URL при регистрации. Данные о токене передаются в URL перенаправления после символа #.

Серверная среда может не передавать веб-приложению эту часть URL. В таком случае можно выделять данные из адреса с помощью JavaScript, или получать токены с помощью кода подтверждения.

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

Полученный токен можно сохранить в приложении и использовать для запросов к API до истечения времени его жизни. Токен должен быть доступен только вашему приложению, поэтому не рекомендуется сохранять его в куках браузера, открытых конфигурационных файлах и т. п.

URL для запроса токена

Приложение должно направить пользователя на Яндекс.OAuth по следующему адресу:

Идентификатор приложения. Доступен в свойствах приложения (нажмите название приложения, чтобы открыть его свойства).

Уникальный идентификатор устройства, для которого запрашивается токен. Чтобы обеспечить уникальность, достаточно один раз сгенерировать UUID и использовать его при каждом запросе нового токена с данного устройства.

Идентификатор должен быть не короче 6 символов и не длиннее 50. Допускается использовать только печатаемые ASCII-символы (с кодами от 32 до 126).

Подробнее о токенах для отдельных устройств читайте на странице Токен для устройства.

Имя устройства, которое следует показывать пользователям. Не длиннее 100 символов.

Для мобильных устройств рекомендуется передавать имя устройства, заданное пользователем. Если такого имени нет, его можно собрать из модели устройства, названия и версии ОС и т. д.

URL, на который нужно перенаправить пользователя после того, как он разрешил или отказал приложению в доступе. По умолчанию используется первый Callback URI, указанный в настройках приложения ( Платформы → Веб-сервисы → Callback URI ).

В значении параметра допустимо указывать только те адреса, которые перечислены в настройках приложения. Если совпадение неточное, параметр игнорируется.

Явное указание аккаунта, для которого запрашивается токен. В значении параметра можно передавать логин аккаунта на Яндексе, а также адрес Яндекс.Почты или Яндекс.Почты для домена.

Параметр позволяет помочь пользователю авторизоваться на Яндексе с тем аккаунтом, к которому нужен доступ приложению. Получив параметр, Яндекс.OAuth проверяет авторизацию пользователя:

Если пользователь уже авторизован с нужным аккаунтом, Яндекс.OAuth просто запрашивает разрешение на доступ.

Если пользователь не авторизован с нужным аккаунтом, он увидит форму входа на Яндекс, в которой поле логина заполнено значением параметра. Помните, что токен не обязательно будет запрошен для указанного аккаунта: пользователь может стереть предзаполненный логин и войти с любым другим.

Если параметр указывает на несуществующий аккаунт, Яндекс.OAuth сможет только сообщить об этом пользователю. Приложению придется запрашивать токен заново.

Список необходимых приложению в данный момент прав доступа, разделенных пробелом. Права должны запрашиваться из перечня, определенного при регистрации приложения. Узнать допустимые права можно по ссылке https://oauth.yandex.ru/client/ /info, указав вместо идентификатор приложения.

Если параметры scope и optional_scope не переданы, то токен будет выдан с правами, указанными при регистрации приложения.

Параметр позволяет получить токен только с теми правами, которые нужны приложению в данный момент.

Если параметры scope и optional_scope не переданы, то токен будет выдан с правами, указанными при регистрации приложения.

Параметр можно использовать, например, если приложению нужна электронная почта для регистрации пользователя, а доступ к портрету желателен, но не обязателен.

Признак того, что у пользователя обязательно нужно запросить разрешение на доступ к аккаунту (даже если пользователь уже разрешил доступ данному приложению). Получив этот параметр, Яндекс.OAuth предложит пользователю разрешить доступ приложению и выбрать нужный аккаунт Яндекса.

Параметр полезен, например, если пользователь вошел на сайт с одним аккаунтом Яндекса и хочет переключиться на другой аккаунт. Если параметр не использовать, пользователю придется явно менять аккаунт на каком-нибудь сервисе Яндекса или отзывать токен, выданный сайту.

Строка состояния, которую Яндекс.OAuth возвращает без изменения. Максимальная допустимая длина строки — 1024 символа.

Можно использовать, например, для защиты от CSRF-атак или идентификации пользователя, для которого запрашивается токен.

Признак облегченной верстки (без стандартной навигации Яндекса) для страницы разрешения доступа.

Облегченную верстку стоит запрашивать, например, если страницу разрешения нужно отобразить в маленьком всплывающем окне.

Источник

Yandex oauth что это

Яндекс предоставляет доступ к своим сервисам по протоколу OAuth. Доступ к защищенным данным предоставляется только зарегистрированным приложениям.

OAuth — открытый протокол авторизации, который позволяет предоставить третьей стороне ограниченный доступ к защищённым ресурсам пользователя без необходимости передавать ей (третьей стороне) логин и пароль.

Получение доступа можно разделить на 2 этапа:

OAuth Сервер Яндекса доступен по адресу oauth.yandex.ru. Управление доступом к ресурсам пользователя настраивается именно на нем. В этой статье будет рассмотрен процесс регистрации приложения, которому разрешен доступ к Яндекс Диску с помощью REST API.

Регистрация приложения

Для регистрации приложения необходимо пройти по ссылке https://oauth.yandex.ru и нажать на кнопку «Зарегистрировать новое приложение»: yandex oauth что это. Смотреть фото yandex oauth что это. Смотреть картинку yandex oauth что это. Картинка про yandex oauth что это. Фото yandex oauth что этоВ открывшейся форме заполнить:

После этого нажать на кнопку «Сохранить«:

yandex oauth что это. Смотреть фото yandex oauth что это. Смотреть картинку yandex oauth что это. Картинка про yandex oauth что это. Фото yandex oauth что это

Cервер зарегистрирует приложение и отобразит присвоенные ему идентификационные данные:

yandex oauth что это. Смотреть фото yandex oauth что это. Смотреть картинку yandex oauth что это. Картинка про yandex oauth что это. Фото yandex oauth что это

На этом регистрация приложения закончена.

Получение разрешения на доступ к диску

Для отправки запроса на доступ требуется сформировать url следующего вида:

После чего перейти по получившейся ссылке и нажать на кнопку «Разрешить».

yandex oauth что это. Смотреть фото yandex oauth что это. Смотреть картинку yandex oauth что это. Картинка про yandex oauth что это. Фото yandex oauth что это

В ответ сервер сгенерирует токен, с помощью которого можно получить доступ к диску.

yandex oauth что это. Смотреть фото yandex oauth что это. Смотреть картинку yandex oauth что это. Картинка про yandex oauth что это. Фото yandex oauth что это

Данный токен действителен в течении года. Через год необходимо будет получить его заного.

Немного подробнее о использовании Yandex.Disk REST API

Сохранение файлов происходит в два этапа:

Давайте рассмотрим их немного подробнее.

Формат запроса URL для загрузки файла

Запрос URL для загрузки следует отправлять с помощью метода GET.

Путь в значении параметра следует кодировать в URL-формате.

Допустимые значения: «false» — не перезаписывать файл, отменить загрузку (используется по умолчанию); «true» — удалить файл с совпадающим именем и записать загруженный файл.

Формат ответа

Если запрос был обработан без ошибок, API отвечает кодом 200 OK. В теле ответа, в объекте Link, возвращается сгенерированный URL для загрузки файла. Если в течение 30 минут этот URL не будет запрошен, он перестанет работать, и нужно будет запросить новую ссылку.

Если запрос вызвал ошибку, возвращается подходящий код ответа, а тело ответа содержит описание ошибки.

Загрузка файла на полученный URL

Файл следует отправить с помощью метода PUT на URL для загрузки, в течение 30 минут после получения этого URL (через 30 минут ссылка перестанет работать и ее нужно будет запросить заново). OAuth-токен для загрузки в хранилище не нужен.

Пример URL для загрузки:

Формат ответа

Если запрос был обработан без ошибок, API отвечает кодом 201 Created.

Источник

Яндекс OAuth авторизация в iOS

Регистрация приложения

На этапе регистрации придумываем url-схему

yandex oauth что это. Смотреть фото yandex oauth что это. Смотреть картинку yandex oauth что это. Картинка про yandex oauth что это. Фото yandex oauth что это

И запоминаем Id приложения

yandex oauth что это. Смотреть фото yandex oauth что это. Смотреть картинку yandex oauth что это. Картинка про yandex oauth что это. Фото yandex oauth что это

Возможные варианты реализации

Снова читаем документацию и понимаем что нам надо отобразить пользователю веб-страницу, с которой после успешной авторизации произойдет редирект на url со схемой которую мы указали на этапе регистрации.

Тут возможны два подхода.
1) Регистрируем приложение обработчиком указанной URL-схемы в системе. Открываем пользователю Safari с формой авторизации и ждем перезапуска приложения.
Регистрация приложения обработчиком URL-схемы подробно описана здесь

2) Показываем UIWebView и в его делегатских методах отлавливаем переход по нашей схеме.

Второй подход мне кажется более простым, т.к. во-первых пользователь не покидает наше приложение, а во-вторых авторизация через Яндекс может быть едиственным способом входа в наше приложение.

Пишем код

Создаем тестовый проект в XCode.

yandex oauth что это. Смотреть фото yandex oauth что это. Смотреть картинку yandex oauth что это. Картинка про yandex oauth что это. Фото yandex oauth что это

yandex oauth что это. Смотреть фото yandex oauth что это. Смотреть картинку yandex oauth что это. Картинка про yandex oauth что это. Фото yandex oauth что это

Добавляем в проект YandexOauthViewController.* (ссылка на исходный код в конце статьи).

В YandexOauthViewController.h изменяем в следующих строках значения на ваши:

#define URL_SCHEME @»iostestapp»
#define CLIENT_ID @»6ef1c6dc6f134a2daa67cc905e5c1a3d»

Во ViewController.h импортируем YandexOauthViewController.h и обявляем себя «реализатором» протокола YandexOauthViewControllerDelegate.

@interface ViewController : UIViewController

В тестовом приложении будем авторизировать пользвателя при запуске. Для этого во ViewController.m изменяем метод ViewDidLoad:

Какой еще self.navigationController, спросите вы и будете правы — навигейшен контроллера еще нет, поэтому добавляем его в AppDelegate.m:

Запускаем приложение и видим так нужную нам форму авторизации.

yandex oauth что это. Смотреть фото yandex oauth что это. Смотреть картинку yandex oauth что это. Картинка про yandex oauth что это. Фото yandex oauth что это

Кнопка слева (с крестиком) убирает форму авторизации с экрана, а правая кнопка возвращает пользователя на страницу авторизации. Дело в том, что в некоторых случаях Яндекс теряет цель нашего захода в авторизацию и и отображает профиль пользователя из которого нам токен уже не передадут.

После ввода логина пароля и, в некоторых случаях, подтверждения постоянной авторизации на данном устройстве Яндекс перенаправляет нас по URL-схеме указанной прирегистрации приложения. Рассмотрим перехват этого перехода в файле YandexOauthViewController.m.

Осталось в ViewController.m реализовать протокол YandexOauthViewControllerDelegate.

Источник

Мобильное приложение

Получение токена для мобильного приложения:

Пользователь разрешает доступ приложению.

Яндекс.OAuth перенаправляет пользователя на адрес, указанный в поле Callback URL при регистрации приложения. Данные о токене передаются в URL перенаправления после символа #.

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

Полученный токен можно сохранить в приложении и использовать для запросов к API до истечения времени его жизни. Токен должен быть доступен только вашему приложению, поэтому не рекомендуется сохранять его в куках браузера, открытых конфигурационных файлах и т. п.

URL для запроса токена

Приложение должно направить пользователя на Яндекс.OAuth по следующему адресу:

Идентификатор приложения. Доступен в свойствах приложения (нажмите название приложения, чтобы открыть его свойства).

Уникальный идентификатор устройства, для которого запрашивается токен. Чтобы обеспечить уникальность, достаточно один раз сгенерировать UUID и использовать его при каждом запросе нового токена с данного устройства.

Идентификатор должен быть не короче 6 символов и не длиннее 50. Допускается использовать только печатаемые ASCII-символы (с кодами от 32 до 126).

Подробнее о токенах для отдельных устройств читайте на странице Токен для устройства.

Имя устройства, которое следует показывать пользователям. Не длиннее 100 символов.

Для мобильных устройств рекомендуется передавать имя устройства, заданное пользователем. Если такого имени нет, его можно собрать из модели устройства, названия и версии ОС и т. д.

URL, на который нужно перенаправить пользователя после того, как он разрешил или отказал приложению в доступе. По умолчанию используется первый Callback URI, указанный в настройках приложения ( Платформы → Веб-сервисы → Callback URI ).

В значении параметра допустимо указывать только те адреса, которые перечислены в настройках приложения. Если совпадение неточное, параметр игнорируется.

Явное указание аккаунта, для которого запрашивается токен. В значении параметра можно передавать логин аккаунта на Яндексе, а также адрес Яндекс.Почты или Яндекс.Почты для домена.

Параметр позволяет помочь пользователю авторизоваться на Яндексе с тем аккаунтом, к которому нужен доступ приложению. Получив параметр, Яндекс.OAuth проверяет авторизацию пользователя:

Если пользователь уже авторизован с нужным аккаунтом, Яндекс.OAuth просто запрашивает разрешение на доступ.

Если пользователь не авторизован с нужным аккаунтом, он увидит форму входа на Яндекс, в которой поле логина заполнено значением параметра. Помните, что токен не обязательно будет запрошен для указанного аккаунта: пользователь может стереть предзаполненный логин и войти с любым другим.

Если параметр указывает на несуществующий аккаунт, Яндекс.OAuth сможет только сообщить об этом пользователю. Приложению придется запрашивать токен заново.

Список необходимых приложению в данный момент прав доступа, разделенных пробелом. Права должны запрашиваться из перечня, определенного при регистрации приложения. Узнать допустимые права можно по ссылке https://oauth.yandex.ru/client/ /info, указав вместо идентификатор приложения.

Если параметры scope и optional_scope не переданы, то токен будет выдан с правами, указанными при регистрации приложения.

Параметр позволяет получить токен только с теми правами, которые нужны приложению в данный момент.

Если параметры scope и optional_scope не переданы, то токен будет выдан с правами, указанными при регистрации приложения.

Параметр можно использовать, например, если приложению нужна электронная почта для регистрации пользователя, а доступ к портрету желателен, но не обязателен.

Признак того, что у пользователя обязательно нужно запросить разрешение на доступ к аккаунту (даже если пользователь уже разрешил доступ данному приложению). Получив этот параметр, Яндекс.OAuth предложит пользователю разрешить доступ приложению и выбрать нужный аккаунт Яндекса.

Параметр полезен, например, если пользователь вошел на сайт с одним аккаунтом Яндекса и хочет переключиться на другой аккаунт. Если параметр не использовать, пользователю придется явно менять аккаунт на каком-нибудь сервисе Яндекса или отзывать токен, выданный сайту.

Строка состояния, которую Яндекс.OAuth возвращает без изменения. Максимальная допустимая длина строки — 1024 символа.

Можно использовать, например, для защиты от CSRF-атак или идентификации пользователя, для которого запрашивается токен.

Признак облегченной верстки (без стандартной навигации Яндекса) для страницы разрешения доступа.

Облегченную верстку стоит запрашивать, например, если страницу разрешения нужно отобразить в маленьком всплывающем окне.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *