App-авторизация
Бизнес-описание
App-авторизация через T-ID предоставляет пользователям возможность подтверждать свою личность и авторизовываться в мобильных приложениях партнеров.
Авторизация из мобильного приложения партнера реализуется через SDK.
SDK
SDK — это готовые решения API T‑ID для наиболее распространенных платформ. Использование SDK упрощает разработку и сокращает время на интеграцию ваших мобильных приложений.
Принцип работы
App to App
Для бесшовного входа в мобильное приложение партнера с T‑ID реализован сценарий App to App. Сценарий доступен только при использовании готового SDK для соответствующей мобильной платформы.
- В партнерской анкете вас попросят указать mobile_redirect_uri — это ссылка, которая ведет в ваше приложение. Для защиты от потенциальных уязвимостей используйте схему URI —
mobile://myintegrationилиmyservice://authorized.URL-адрес не должен начинаться с
http/https. - В сценарии App to App не используется параметр
client_secret. Вместо него генерируется параметрcode_verifier. - Чтобы предотвратить последствия возможного перехвата кода, используйте защиту Proof Key for Code Exchange. Значение должно быть уникальным для каждого запроса кода авторизации.
В приложении партнера клиент нажимает Войти с T‑ID.
В запросе на авторизацию передаются обязательные параметры
code_challengeиcode_challenge_method.Сервис партнера генерирует параметры
code_verifierиcode_challenge_methodи создает их преобразованную версиюcode_challengeчерез преобразованиеcode_challenge = code_challenge_method(code_verifier), гдеcode_challenge_method— трансформирующая функция. Подробнее о хешировании параметраcode_verifier.Мобильное приложение партнера запрашивает код авторизации.
Клиент отправляет запрос обмена кода на токены — передает стандартные параметры и параметр
code_verifier, созданный и сохраненный на шаге 2.Авторизационный сервер проверяет
code_verifierна соответствиеcode_challengeи возвращает токены или отвечает ошибкой.Клиент аутентифицируется в мобильном приложении T‑Банка по уже активной сессии и подтверждает согласие на передачу данных.
Если вход успешный, мобильное приложение Т‑Банка перенаправляет клиента в приложение партнера по адресу, который указан в
redirect_uri. В ином случае партнерский сервис получает ошибку.
Сейчас авторизация для юридических лиц c T‑Business ID недоступна в мобильных приложениях.
App to Web с использованием компонента WebView
Партнер инициализирует запуск WebView через кнопку Войти с Т‑ID.
Пользователь инициирует процесс авторизации, нажимая Войти с Т‑ID на сайте или в приложении партнера.
Сервис партнера генерирует параметры
code_verifierиcode_challenge_methodи создает их преобразованную версиюcode_challengeчерез преобразованиеcode_challenge = code_challenge_method(code_verifier), гдеcode_challenge_method— трансформирующая функция. Подробнее о хешировании параметраcode_verifier.- Чтобы предотвратить последствия возможного перехвата кода, используйте защиту Proof Key for Code Exchange. Значение должно быть уникальным для каждого запроса кода авторизации.
- Требуемая генерация —
base64_url(SHA256(code_verifier)). Пример генератора.
Авторизация инициируется через вызов метода
GET https://id.tbank.ru/auth/authorizeсо следующими параметрами:client_id— идентификатор, который вы получили после регистрации.redirect_uri— ссылка в приложение (app link), указанная в анкете.code_challengecode_challenge_methodresponse_type—coderesponse_mode=query
Открывается окно аутентификации
id.tbank.ruдля ввода номера телефона.Пользователь вводит данные для прохождения аутентификации и нажимает Продолжить, соглашаясь с передачей данных. В зависимости от настроек партнерского приложения, пользователь может отметить данные, которые он не готов предоставить. Если пользователь разрешает передачу всех данных, в следующих авторизациях это окно не открывается.
На
https://myintegration.ru/auth/completeприходит запрос. Вид запроса:https://myintegration.ru/auth/complete?code=c.1aGiAXX3Ni&session_state=hXXXXXXY3kgs3nx0H3RTj3JzCSrdaqaDhU6lS8XXXXX.i4kl6dsEB1SQogzq00Происходит переход в приложение партнера по app link с параметром
code— сохраните его для дальнейшего обмена на токены.Приложение партнера получает
access_tokenчерез метод POST https://id.tbank.ru/auth/token. Запрос должен выполняться с бэкенда.- Authorization: basic, где username и password соответствуют
client-id, который вы получили на электронную почту после регистрации. Примеры составления на разных языках. - Content-type:
application/x-www-form-urlencoded. - grant_type:
authorization_code. - redirect_uri:
mobile_redirect_url— тот, который был направлен вauthorize. - code_verifier
- code — код из пункта 8.
- Authorization: basic, где username и password соответствуют
Приложение партнера получает ответ — авторизационный сервер проверяет
code_verifierна соответствиеcode_challengeи возвращает токены или отвечает ошибкой.- access_token: токен для обращения к T-API для получения информации о пользователе;
- token_type: тип авторизации по
access_token; - expires_in: время жизни
access_token; - id_token: технический параметр T‑ID.