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