---
metadata:
  - name: generator
    content: Diplodoc Platform v5.57.4
alternate:
  - https://yandex.ru/dev/id/doc/en/concepts/ya-oauth-intro.md
  - https://yandex.ru/dev/id/doc/ru/concepts/ya-oauth-intro.md
  - href: https://yandex.ru/dev/id/doc/ru/concepts/ya-oauth-intro.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.ru/dev/id/doc/ru/llms.txt?revision=r21194166
    rel: describedby
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/id/doc/ru/llms.txt?revision=r21194166

# Реализация OAuth в Яндексе

Сервисы Яндекса авторизуют приложения по токенам по протоколу [OAuth 2.0](http://tools.ietf.org/html/rfc6749#section-4.4). Каждый токен — это цифро-буквенная последовательность, в которой зашифрована следующая информация:

* идентификатор учетной записи, к которой разрешен доступ;
    
* идентификатор приложения, которому разрешен доступ;
    
* набор прав (действий, доступных приложению).
    
Ниже описаны общие правила использования OAuth-токенов Яндекса.

## Процедура авторизации {#authorization-scheme}

Приложения запрашивают токены по следующей схеме:

![image](../_assets/authorization.svg)

1. Приложение направляет пользователя на OAuth-сервер. На открывшейся странице он может разрешить приложению доступ к запрошенным данным своей учетной записи. Приложение может запросить права доступа, указанные при [регистрации приложения](https://yandex.ru/dev/id/doc/ru/register-client.md#access): {#step-1}
    
   * Все права доступа, указанные при регистрации приложения. В этом случае пользователь может разрешить или запретить только все запрошенные доступы сразу.
   * Только необходимые в данный момент права доступа из перечня, определенного при регистрации приложения. В этом случае пользователь также может разрешить или запретить только все запрошенные доступы сразу.
   * Необходимые в данный момент права доступа из перечня, определенного при регистрации приложения, и опциональные права из того же перечня, без которых можно обойтись. Опциональным может являться, например, доступ к портрету. В этом случае пользователь может разрешить все запрошенные необходимые доступы сразу и выбрать, какие из запрошенных опциональных доступов разрешить.
    
1. Пользователь разрешает доступ к своим данным, и OAuth-сервер перенаправляет его на выбранный разработчиком адрес — [Redirect URI](https://yandex.ru/dev/id/doc/ru/register-client.md).
   
   Выданный [токен](https://yandex.ru/dev/id/doc/ru/access.md) или [код](https://yandex.ru/dev/id/doc/ru/codes/code-and-token.md) для его получения включается в URL перенаправления. Если произошла ошибка, в URL включается описание ошибки.


1. Приложение включает полученный токен в запрос к сервису Яндекса, который поддерживает OAuth.

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

## Время жизни токена {#ttl}

Время жизни токена — это срок, в течение которого токен можно использовать для авторизации. Максимальное время жизни зависит от прав, выбранных при [регистрации приложения](https://yandex.ru/dev/id/doc/ru/register-client.md#access):


Продлеваемый токен

:  Устаревает после нескольких месяцев, но продлевается при каждой авторизации с этим токеном.

   При регистрации приложения отображается минимальное время жизни, например, <q>не менее, чем 1 год</q>.

Ограниченный токен

:  Устаревает по истечении времени, установленного для соответствующих прав доступа.

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

## Отзыв токена {#token-recall}

Пользователь может отзывать любые OAuth-токены, выданные для его аккаунта:

* Чтобы отозвать токены, когда-либо выданные для учетной записи, пользователь может сменить пароль или [выйти на всех компьютерах](https://yandex.ru/support/id/profile.html).
* Чтобы отозвать токены, выданные определенному приложению, пользователь может запретить доступ для него на странице [Доступы к данным](https://id.yandex.ru/personal/data-access).

Приложение может отозвать собственный токен, если он был выдан [для определенного устройства](https://yandex.ru/dev/id/doc/ru/tokens/token-invalidate.md#device-token).

Все случаи отзыва токенов перечислены на странице [Отзыв токенов](https://yandex.ru/dev/id/doc/ru/tokens/token-invalidate.md).

## Пользовательский интерфейс {#interface}

Страница, на которой пользователь может разрешить доступ приложению ([первый шаг](#step-1) авторизации), содержит название приложения и список запрашиваемых прав:

![image](../_assets/confirm-data-2.png =400x)

Когда пользователь подтверждает вход, OAuth-сервер перенаправляет его на адрес, указанный в качестве [Redirect URI](https://yandex.ru/dev/id/doc/ru/register-client.md).
