Перейти к содержанию

Мобильная авторизация

Мобильная авторизация

Для бесшовного входа в мобильное приложение партнера с Tinkoff ID реализован сценарий App to App. В данном сценарии повторяются шаги, описанные в предыдущем разделе, но необходимо соблюсти следующие требования:

  1. В партнерской анкете вас попросят указать mobile_redirect_uri, который является диплинком, ведущим в ваше приложение. Для защиты от потенциальных уязвимостей необходимо использовать кастомную схему URI mobile://myintegration или myservice://authorized. Обращаем внимание на начало url-адреса, которое не должно принимать вид http/https.
  2. В сценарии App to App не используется параметр client_secret. Вместо него необходимо сгенерировать параметр code_verifier, подробно описанный ниже. Также необходимо использовать защиту Proof Key for Code Exchange (PKCE) для предотвращения последствий возможного перехвата кода. Данное значение должно быть уникальным для каждого запроса кода авторизации.
  3. Использовать готовые средства разработки SDK для соответствующей мобильной платформы.

Концепция протокола:

  1. Клиент нажимает кнопку "Войти с Тинькофф" в приложении партнера
  2. В авторизационном запросе в дополнение к обычным параметрам обязательно передаются параметры code_challenge и code_challenge_method. Партнерское приложение генерирует параметр code_verifier и создает его преобразованную версию code_challenge, которая получается с помощью применения преобразования code_challenge = code_challenge_method(code_verifier), где code_challenge_method является трансформирующей функцией. Почитать про хеширование параметра code_verifier можно здесь
  3. Клиент аутентифицируется в мобильном приложении Тинькофф (по уже активной сессии), после чего подтверждает согласие на передачу данных
  4. В случае успешного входа мобильное приложение Тинькофф перенаправляет клиента в приложение партнера по адресу, указанному в redirect_uri, в ином случае - партнерский сервис получит ошибку.
  5. Мобильное приложение партнера запрашивает код авторизации
  6. Клиент отправляет запрос обмена кода на токены, причем в добавление к стандартным параметрам обязательно передает параметр code_verifier, созданный и сохраненный на шаге 2
  7. Авторизационный сервер проверяет code_verifier на соответствие code_challenge и возвращает токены или отвечает ошибкой

Внимание: на текущий момент авторизация для юридических лиц c Tinkoff Business ID не доступна на мобильных приложениях.

SDK

SDK - готовые реализации API Tinkoff ID для наиболее распространенных платформ. Использование SDK упрощает разработку и сокращает время на интеграцию ваших мобильных приложений.
Подробная информация выложена в соответствующие репозитории по ссылкам ниже:

Для ознакомления со стайлгайдами перейдите по ссылке.