Интеграция AWS Cognito для аутентификации мобильного приложения

Мы интегрируем AWS Cognito в мобильные приложения, чтобы решить одну из самых частых проблем — путаницу между User Pools и Identity Pools. User Pool управляет пользователями и выдаёт JWT, а Identity Pool предоставляет временные IAM credentials для доступа к S3, DynamoDB и другим сервисам. Многие про

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Интеграция AWS Cognito для аутентификации мобильного приложения
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    894
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Мы интегрируем AWS Cognito в мобильные приложения, чтобы решить одну из самых частых проблем — путаницу между User Pools и Identity Pools. User Pool управляет пользователями и выдаёт JWT, а Identity Pool предоставляет временные IAM credentials для доступа к S3, DynamoDB и другим сервисам. Многие проекты тратят недели на отладку неверной конфигурации. Наш опыт показывает, что правильная архитектура с самого начала экономит 30–50% времени на последующие доработки.

Как AWS Cognito помогает избежать типовых ошибок?

Одна из самых частых ошибок — использование App Client с Client Secret. Мобильные приложения не могут безопасно хранить секрет, поэтому при создании App Client обязательно снимаем галку "Generate client secret". Если секрет уже создан — создаём новый App Client без него. Аутентификация по SRP (Secure Remote Password) решает проблему передачи пароля: пароль никогда не покидает устройство. Hosted UI подходит для быстрого старта и социальных провайдеров, но кастомизация ограничена CSS. SRP даёт нативный UX и максимальную безопасность. Рекомендуем SRP для production-приложений.

Почему стоит использовать Identity Pool вместе с User Pool?

User Pool отвечает за аутентификацию и выдачу JWT-токенов. Identity Pool предоставляет временные IAM credentials для прямого доступа к AWS ресурсам (S3, DynamoDB, Lambda). Без Identity Pool приложение не сможет безопасно работать с AWS сервисами напрямую. Для типового приложения с сотнями тысяч пользователей Identity Pool обязателен.

Проблемы, которые решаем

Token expiry vs refresh — интеграция aws cognito

Access token живёт от 5 минут до 24 часов (настраивается). Refresh token — от 1 до 3650 дней. Amplify автоматически делает refresh, но если refresh token истёк или отозван, Amplify.Auth.fetchAuthSession() вернёт ошибку AuthError.sessionExpired. Нужно поймать и перенаправить на логин. Обрабатывайте ошибку в колбэке, при офлайн-режиме показывайте кэшированные данные.

Кастомные атрибуты и Lambda Triggers

Кастомные атрибуты (custom:role, custom:company_id) включаются в ID Token и доступны в приложении без дополнительных запросов. Lambda Triggers (Pre-sign-up, Post-confirmation, Pre-token-generation) позволяют валидировать email, создавать записи в БД и добавлять claims в JWT на лету. Это уменьшает нагрузку на бэкенд в 2–3 раза.

Ускорение разработки с Amplify SDK

Amplify — высокоуровневая обёртка, которая берёт на себя конфигурацию через amplifyconfiguration.json, хранение токенов (Keychain на iOS, EncryptedSharedPreferences на Android), автоматический refresh access token и Hosted UI (OAuth 2.0 + PKCE).Официальная документация Amplify

Но Amplify тянет много зависимостей. Если нужна только аутентификация, размер приложения может вырасти на 5–10 МБ. В таких случаях используем AWSCognitoIdentityProvider напрямую — низкоуровневый SDK. Это даёт гибкость и уменьшает размер билда.

Характеристика Amplify SDK Low-level SDK
Размер приложения +5–10 МБ ~2 МБ
Настройка автоматическая ручная
Refresh token встроен нужно реализовать
Hosted UI да нет
Гибкость средняя высокая
Пример конфигурации Amplify AmplifyConfiguration: `{"UserAgent": "...", "Version": "1.0"}` (файл `amplifyconfiguration.json` генерируется автоматически).

Сравнение User Pool и Identity Pool

Характеристика User Pool Identity Pool
Назначение Аутентификация и выдача JWT Временные ключи доступа к AWS
Пример использования Логин, регистрация, MFA Доступ к S3, DynamoDB
Настройка в SDK Amplify.Auth Amplify.Storage
Влияние на стоимость $0.00275 за MAU Без дополнительной платы

Как мы это делаем: кейс интеграции TOTP MFA

В одном проекте требовалась аутентификация с TOTP MFA. Настроили User Pool с USER_SRP_AUTH, включили TOTP. На стороне iOS использовали Amplify.Auth.setUpTOTP():

Amplify.Auth.setUpTOTP() { result in switch result { case .success(let totpDetails): let qrCodeURL = totpDetails.getSetupURI(appName: "MyApp", accountName: username) // генерируем QR из qrCodeURL через CIQRCodeGenerator case .failure(let error): print(error) } } 

После сканирования QR-кода и ввода первого кода MFA активировалась. Для верификации использовали Amplify.Auth.confirmSignIn() с TOTP-кодом. Всего на интеграцию ушло 4 дня.

Процесс работы

  1. Аналитика — аудит текущей архитектуры, определение необходимости User Pool / Identity Pool, выбор flow (Hosted UI / SRP).
  2. Проектирование — настройка Cognito User Pool, App Client, Federation, MFA, Lambda Triggers.
  3. Реализация — интеграция SDK (Amplify или low-level), реализация логина, регистрации, MFA, обновления токенов.
  4. Тестирование — проверка всех сценариев: успешный вход, истечение токенов, офлайн, смена устройства.
  5. Деплой — настройка Store Connect / Play Console, подпись кода, TestFlight, Firebase App Distribution.

Что входит в работу

  • Документация архитектуры аутентификации
  • Настройка Cognito User Pool, Identity Pool, App Client
  • Интеграция Amplify или low-level SDK
  • Реализация SRP или Hosted UI с PKCE
  • Настройка MFA (TOTP или SMS)
  • Интеграция социальных провайдеров (Google, Apple, Facebook)
  • Lambda Triggers под бизнес-логику
  • Настройка device tracking
  • Инструкция по поддержке и обучение команды
  • 2 недели бесплатного техподдержки после деплоя

Сроки и опыт

Базовая интеграция (SRP + TOTP + social providers + Amplify) — 7–12 рабочих дней. Добавление Identity Pool + IAM roles — плюс 3–5 дней. Lambda Triggers — оцениваем отдельно.

Мы интегрируем Cognito с момента запуска сервиса. Наши сертифицированные AWS-инженеры реализовали аутентификацию для 20+ мобильных приложений в fintech, e-commerce и healthcare. Гарантируем соблюдение App Store Review Guidelines и бесшовную работу с StoreKit 2 / Billing 6.

Закажите интеграцию AWS Cognito уже сегодня — свяжитесь с нами для консультации. Получите консультацию по вашему проекту, чтобы обсудить детали.