Авторизация приложения
Чтобы ваше приложение могло работать с кошельком пользователя ЮMoney, необходимо пройти авторизацию.
Протокол OAuth2 позволяет сделать авторизацию безопасной и удобной. При OAuth2-авторизации приложению не нужно запрашивать у пользователя его логин и пароль. Вместо этого пользователь выдает приложению разрешение работать со своим кошельком в рамках разрешенных пользователем ограничений.
Авторизация приложений в ЮMoney соответствует спецификациям:
  • The OAuth 2.0 Authorization Framework
  • The OAuth 2.0 Authorization Framework: Bearer Token Usage
Схема взаимодействия пользователя и приложения с OAuth-сервером ЮMoney представлена на диаграмме:
Схема взаимодействия пользователя и приложения с OAuth-сервером ЮMoney
 
Действия разработчика
Шаг 1. Разработчик регистрирует свое приложение в ЮMoney. Согласно протоколу OAuth2, это фаза Registration Request. ЮMoney выдают разработчику client_id — идентификатор приложения, тип string.
Шаг 2. Разработчик встраивает в код приложения полученный client_id, объявляя его константой. Далее приложение распространяется любым удобным способом. В течение жизненного цикла приложения client_id не изменяется.
Сценарий авторизации приложения пользователем
  1. Пользователь инициирует авторизацию приложения для управления своим счетом.
  2. Приложение отправляет запрос Authorization Request на сервер ЮMoney.
  3. ЮMoney перенаправляют пользователя на страницу авторизации.
  4. Пользователь вводит свой логин и пароль, просматривает список запрашиваемых прав и подтверждает, либо отклоняет запрос авторизации.
  5. Приложение получает ответ Authorization Response в виде HTTP Redirect со временным токеном для получения доступа или кодом ошибки.
  6. Приложение, используя полученный временный токен доступа, отправляет запрос на получение токена авторизации (Access Token Request).
  7. Ответ содержит токен авторизации (access_token).
  8. Приложение сообщает пользователю результат авторизации.
Удостоверение подлинности приложения по секретному слову
Сервис ЮMoney предоставляет дополнительную возможность удостовериться в том, что токен авторизации будет получен именно из вашего приложения.
Для этого, при получении токена авторизации (вызов /oauth/token), приложение передает секретное слово (client_secret), известное только приложению.
Требования безопасности
  1. Все сетевые взаимодействия производятся только по HTTPS.
  2. Версия TLS — 1.2 или выше.
  3. Приложение должно проверять корректность SSL-сертификата сервера и немедленно прекращать сессию в случае неуспеха проверки, чтобы не допустить утечку данных авторизации.
  4. Не храните токен авторизации в открытом виде, в том числе в виде cookies.
  5. Никогда не используйте токен авторизации в параметрах запросов (GET, POST, и пр.).
  6. Секретное слово никогда не должно проходить через устройство или браузер пользователя.
  7. Секретное слово не должно использоваться в иных запросах, кроме запроса на получение токена.