Рекомендации по внедрению входа через Google

Войти через Google

Введение

Вход через Google (SiWG) — это быстрый и безопасный способ авторизации пользователей в вашем приложении или на веб-сайте. Правильная реализация этой функции не только упрощает процесс регистрации пользователей, но и повышает безопасность вашего приложения. В этом документе описаны лучшие практики интеграции входа через Google на веб-платформах, платформах Android и iOS. Данная документация посвящена исключительно аутентификации. Авторизация выходит за рамки этого документа.

Контрольный список этапов интеграции

Этот контрольный список представляет собой общую дорожную карту, которая поможет вам пройти процесс интеграции «Вход через Google». Он организован по ключевым этапам, от первоначальной настройки до запуска в рабочую среду. Используйте этот список для отслеживания своего прогресса и переходите по ссылкам к подробным инструкциям для каждого этапа.

Этап 0: Начало работы (необязательно)

Ускорьте процесс интеграции с помощью практических, пошаговых инструкций для разработчиков.

Web: Выполните задание из практического курса по созданию простой веб-интеграции с кнопкой «Вход в Google одним касанием» .

Android: Пройдите лабораторную работу по Android , чтобы изучить основы работы с менеджером учетных данных Android.

iOS: Пройдите практическое занятие по iOS , чтобы ознакомиться с iOS SDK.

Этап 1: Проект Google Cloud и настройка бренда.

Обеспечьте успешную реализацию вашего проекта с самого начала.

Структурируйте проекты Google Cloud для различных сред и брендов .

Завершите настройку экрана согласия OAuth, указав всю необходимую информацию о брендинге и поддержке.

Создайте правильный тип идентификатора клиента OAuth для каждой платформы (Web, Android, iOS).

Этап 2: Основная разработка: фронтенд и бэкенд

Разработайте защищенную серверную логику и пользовательский интерфейс, специфичный для каждой платформы.

В процессе разработки вашего фронтенда:

и примените общие лучшие практики пользовательского опыта (UX) , чтобы максимально повысить уровень принятия пользователями и доверие к продукту.

Web: Используйте официальную библиотеку JavaScript и интегрируйте как последовательность действий с кнопкой, так и последовательность действий в одно касание.

Android: Используйте официальный SDK Android для интеграции.

iOS: Используйте официальный SDK iOS для интеграции.

В процессе разработки бэкенда:

Реализовать безопасную проверку токенов Google ID на стороне бэкэнда .

Используйте утверждение sub в качестве уникального и постоянного идентификатора пользователя в вашей системе.

При необходимости разделение областей аутентификации и авторизации .

Этап 3: Усиление защиты и запуск в производство.

Убедитесь, что ваша интеграция безопасна, соответствует требованиям и готова к внедрению в производство.

Ознакомьтесь с передовыми методами обеспечения безопасности и внедрите их.

Завершите процесс проверки приложения OAuth перед запуском.

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

Общие рекомендации (для всех платформ)

Эти правила применимы независимо от платформы, для которой вы разрабатываете. Разработчикам также следует ознакомиться с общими правилами OAuth 2.0, чтобы обеспечить полное соответствие требованиям.

В этом разделе изложены лучшие практики структурирования проектов Google Cloud и настройки клиентов OAuth для обеспечения безопасности и соответствия фирменным стандартам.

  • Используйте отдельные проекты для тестирования и производства.

    Поскольку некоторые правила Google применяются только к производственным приложениям, вам необходимо создать отдельные проекты в консоли Google Cloud для различных сред развертывания, таких как разработка, тестирование и производство. Подробнее см. на этой странице .

  • Используйте отдельные проекты для каждого бренда или домена.

    Если ваша организация управляет несколькими приложениями с разными брендами, для каждого бренда должен быть свой собственный выделенный проект Google Cloud. Информация, отображаемая на экране согласия пользователя, такая как название приложения, логотип, адрес электронной почты службы поддержки и ссылки на Условия использования и Политику конфиденциальности, настраивается на уровне проекта. Это означает, что все идентификаторы клиентов OAuth, созданные в рамках одного проекта, будут иметь одинаковую фирменную символику. Предоставление каждому бренду собственного проекта гарантирует, что пользователи будут видеть правильную фирменную символику и юридическую информацию для конкретного приложения, которое они используют.

  • Укажите стандартный адрес электронной почты службы поддержки.

    Адрес электронной почты службы поддержки пользователей отображается публично на экране согласия OAuth. Для поддержания профессионализма и обеспечения непрерывности всегда указывайте общий адрес электронной почты службы поддержки (например, support@yourdomain.com ) в настройках экрана согласия OAuth проекта Google Cloud, а не адрес электронной почты отдельного сотрудника. Дополнительные сведения см. на этой странице .

  • Клиент OAuth для каждой платформы

    Для каждой платформы, на которой работает ваше приложение (например, веб, Android, iOS), следует создать отдельный OAuth-клиент в рамках одного проекта Google Cloud. Использование правильного типа клиента для каждой платформы имеет решающее значение по двум основным причинам:

    • Повышенная безопасность : каждый тип клиента включает в себя функции безопасности, специфичные для платформы. Например, клиент Android может быть заблокирован по имени пакета и сертификату подписи, что предотвращает несанкционированное использование вашего идентификатора клиента.
    • Надлежащая функциональность : она гарантирует корректную интеграцию вашего приложения с SDK и функциями, специфичными для конкретной платформы, такими как Credential Manager на Android или Sign in with Google SDK для iOS.

    Такая структура также упрощает взаимодействие с пользователем. Поскольку обработка согласия осуществляется на уровне проекта Google Cloud , пользователям достаточно предоставить его вашему приложению только один раз на всех платформах. Для получения более подробной информации см. официальные правила OAuth 2.0 .

  • Завершение проверки приложения OAuth.

    Для отображения названия и логотипа вашего рабочего приложения необходимо его подтвердить . Тип подтверждения зависит от данных, запрашиваемых у пользователя.

    Чтобы помочь вам спланировать сроки запуска, Google предоставляет подробную информацию о различных типах верификации и ожидаемом времени их проверки. Более подробную информацию о правилах верификации можно найти в Справочном центре по верификации приложений OAuth .

Безопасность и обработка токенов

В этом разделе рассматриваются требования к среде выполнения и меры безопасности, которые разработчики должны внедрить на своих серверных платформах.

  • Интегрируйте токены Google ID в свой бэкэнд.

    • Проверка токена идентификации : Всегда проверяйте целостность токена идентификации Google на вашем бэкэнд-сервере. Никогда не доверяйте токену только потому, что он отправлен с вашего клиента. Рекомендуется использовать клиентскую библиотеку Google API для этой проверки. Дополнительные сведения см. в разделе «Проверка токена идентификации Google на стороне сервера» .
    • Используйте поле sub : Используйте поле sub токена Google ID только в качестве идентификатора пользователя, поскольку оно уникально и стабильно для всех учетных записей Google и никогда не используется повторно. Вам следует сохранить это поле sub и связать его с пользователем в вашей системе управления учетными записями. Хотя вы можете использовать адрес электронной почты из токена ID для проверки наличия у пользователя существующей учетной записи, не используйте адрес электронной почты в качестве идентификатора, поскольку учетная запись Google может иметь несколько адресов электронной почты в разное время.
  • Отзыв токенов при удалении аккаунта

    Настоятельно рекомендуется предоставить пользователям, входящим в систему через Google, возможность отключить свою учетную запись Google от вашего приложения. Если пользователь решит удалить свою учетную запись, вам необходимо будет аннулировать все токены доступа и обновления, полученные вашим приложением.

    Подробную информацию об отзыве токенов на стороне клиента см. в документации для веб-приложений , Android и iOS . Информацию об отзыве токенов на стороне сервера см. в разделе «Использование OAuth 2.0 для веб-приложений» .

  • Разделите аутентификацию и авторизацию.

    SDK для входа через Google запрашивают только те разрешения, которые необходимы для аутентификации. Если вашему приложению требуется доступ к другим сервисам Google (например, Google Календарь или Диск), вам следует запрашивать эти разрешения отдельно и только тогда, когда пользователь пытается выполнить действие, требующее их. Дополнительные сведения см. в разделе «Раздельные моменты аутентификации и авторизации» .

  • Передовые методы обеспечения безопасности

    Для безопасной интеграции всегда проверяйте токен идентификации на вашем бэкэнд-сервере с помощью клиентской библиотеки Google API . Для более комплексной защиты от различных угроз внедрите пакет безопасности и защиту от межсетевых атак (RISC) . Кроме того, для приложений iOS настоятельно рекомендуется интегрировать App Check , чтобы гарантировать, что запросы исходят от вашего подлинного приложения.

Пользовательский опыт (UX)

В этом разделе основное внимание уделяется оптимизации элементов, ориентированных на пользователя, и процессов входа/регистрации.

  • Кнопка должна быть хорошо видна и доступна на странице входа и регистрации.

  • Следуйте рекомендациям по фирменному стилю : используйте официальные кнопки входа в систему с логотипом Google, чтобы обеспечить единообразный и надежный пользовательский опыт. Ознакомьтесь с официальными рекомендациями по фирменному стилю «Вход с помощью Google» .

  • Простая регистрация : для новых пользователей автоматически создается учетная запись или перенаправляется на страницу создания новой учетной записи после первого успешного входа через Google. В административной панели проверяется, существует ли пользователь с заданным sub ID; если нет, создается новая учетная запись. Это сводит к минимуму усилия по регистрации.

  • Упрощенный вход в систему : для повторных пользователей используйте sub ID) для идентификации и аутентификации в их существующей учетной записи. Внедрите такие функции, как автоматический вход в веб-версию и Android, чтобы быстро и безопасно вернуть их в ваше приложение.

  • Управление способами входа через социальные сети : Предоставляет централизованный раздел «Подключенные учетные записи» в настройках пользователя, где пользователи могут управлять различными способами входа через социальные сети (например, Google).

    • Связывание : Предоставьте кнопку «Войти через Google» для существующих пользователей, использующих другие методы (например, имя пользователя и пароль). Нажатие на эту кнопку запускает процесс аутентификации для связывания их учетной записи Google с существующим профилем.

    • Отключение : Предоставьте возможность отключить учетную запись. Для этого необходимо отозвать токены и удалить связь с Google из базы данных.

Реализация для Android (приложения и игры)

Стандартные приложения для Android

Для реализаций на Android следует использовать диспетчер учетных данных . Это рекомендуемый подход к обработке учетных данных пользователей, обеспечивающий единый, безопасный и согласованный процесс входа в систему на Android.

Для реализации используйте идентификатор клиента OAuth для Android . Если у вас уже реализован вход через Google на других платформах (например, веб, iOS), вам следует создать новый тип идентификатора клиента OAuth для Android в том же проекте Google Cloud.

Потоки реализации

Надежная реализация должна включать в себя как нижний интерфейс диспетчера учетных данных, так и кнопку «Войти через Google».

  • Нижний лист : Это разработанное разработчиком, простое и удобное всплывающее окно, которое отображается диспетчером учетных данных, когда пользователь попадает на экран входа в систему.
  • Кнопка «Войти через Google» : это явный, инициированный пользователем процесс входа в систему, который пользователь может начать, нажав на него.
  • Точная настройка проекта Google Cloud имеет решающее значение. Это включает в себя создание правильных типов идентификаторов клиентов OAuth и предоставление конкретных данных, таких как отпечаток сертификата SHA-1 вашего приложения. Для обеспечения правильной настройки точно следуйте официальному руководству для разработчиков Android .

Кнопку всегда следует включать в процесс, поскольку пользователь может закрыть нижнюю панель или отключить ее в своих настройках. Кнопка гарантирует, что пользователь всегда сможет начать процесс входа в систему.

Стратегия размещения

  • Кнопка «Войти через Google»:

    • Расположение : Отобразите кнопку «Войти через Google» на страницах регистрации или авторизации.
    • Видимость : Разместите его на видном месте рядом с другими способами входа в систему, такими как поля для имени пользователя и пароля или другие сервисы авторизации через социальные сети.
  • Нижняя панель диспетчера учетных данных:

    • Триггер : Нижний информационный экран должен автоматически запускаться при открытии страницы входа в систему или при запуске приложения. Он не должен запускаться при нажатии пользователем кнопки.
    • Автоматический вход в систему : Для повторно использующих приложение пользователей настоятельно рекомендуется включить опцию автоматического входа в систему в Менеджере учетных данных. Это позволит повторно входить в приложение пользователям, которые ранее дали согласие, без какого-либо взаимодействия с вашей системой.

Игры для Android

Для игр на Android использование Credential Manager не рекомендуется. Вместо этого разработчикам игр следует использовать подход Google Play Games Services (PGS) , который ориентирован на кроссплатформенную идентификацию Google с помощью функции «Вход через Google». Более подробную информацию можно найти в документации по кроссплатформенной идентификации Google с помощью функции «Вход через Google» .

реализация для iOS

Используйте официальный SDK для входа через Google.

Для iOS-приложений следует использовать официальный SDK Sign in with Google для iOS и macOS . Эта библиотека предоставляет наиболее безопасный и удобный способ интеграции Sign in with Google.

Для реализации используйте идентификатор клиента OAuth для iOS . Если у вас уже реализован вход через Google на других платформах (например, веб, Android), вам следует создать новый тип идентификатора клиента OAuth для iOS в том же проекте Google Cloud.

Добавьте кнопку «Войти через Google».

  • Размещение : Добавьте кнопку «Войти через Google» на страницу входа в ваше приложение, как на странице регистрации, так и на странице входа. Разместите её на видном месте рядом с другими способами входа, такими как поля для имени пользователя и пароля или другие сервисы авторизации через социальные сети.
  • Используйте рекомендуемые компоненты : используйте официальные компоненты кнопок , предоставляемые SDK как для SwiftUI, так и для UIKit. Эти компоненты автоматически генерируют кнопку, соответствующую рекомендациям Google по фирменному стилю, и являются рекомендуемым способом отображения кнопки.

Повысьте безопасность с помощью App Check.

Защитите свои серверные ресурсы от злоупотреблений, убедившись, что запросы к вашему клиенту OAuth 2.0 исходят от вашего подлинного приложения. App Check использует поставщика аттестации для проверки того, что запросы поступают от подлинного, неизмененного экземпляра вашего приложения, и отклоняет те, которые не соответствуют действительности. Подробнее см. App Check для входа через Google на iOS .

Веб-реализация

Рекомендации по созданию веб-сайтов и веб-приложений.

Используйте официальную библиотеку JavaScript для входа через Google.

Для веб-реализаций следует использовать официальную библиотеку JavaScript «Вход через Google» . Это последнее поколение библиотек идентификации Google для веб-приложений, включающее в себя функции «Кнопка» и «Вход в одно касание» .

Для реализации используйте идентификатор клиента OAuth для веб-версии . Если у вас уже реализован вход через Google на других платформах (например, Android, iOS), вам следует создать новый тип идентификатора клиента OAuth для веб-версии в том же проекте Google Cloud.

Реализуйте как кнопочный, так и однокнопочный режимы работы.

Рекомендуется внедрить как кнопку «Войти через Google», так и функцию входа в систему одним касанием.

  • Кнопка «Войти через Google» : это явный, инициированный пользователем процесс входа/регистрации.
  • One Tap : Это обеспечивает беспроблемный и не требующий прерываний процесс входа в систему или регистрации.
  • Для обеих реализаций используйте один и тот же идентификатор клиента OAuth для веб-версии .

Кнопку всегда следует включать в качестве основного способа входа. Пользователи могут закрыть или отключить функцию входа в One Tap в настройках своей учетной записи Google, но кнопка всегда будет доступна, гарантируя, что пользователи никогда не будут заблокированы для входа в систему.

Стратегия размещения

  • Кнопка «Войти через Google»:

    • Расположение : Отобразите персонализированную кнопку «Войти через Google» на страницах регистрации или авторизации.
      • Обратите внимание, что не существует единого шаблона, который был бы наилучшим для всех сайтов (например, перенаправление или всплывающее окно ). Ваша команда веб-дизайнеров или UX-специалистов должна протестировать и оптимизировать эти сценарии, чтобы максимизировать процент завершения как регистрации, так и входа в систему.
    • Видимость : Разместите его на видном месте рядом с другими способами входа в систему, такими как поля для имени пользователя и пароля или другие сервисы авторизации через социальные сети.
    • Обзор : Раздел « Рекомендации по настройке и производительности кнопки «Войти через Google»» .
  • Подсказка в одно касание:

    • Расположение : Отображайте подсказку «Один клик» на нескольких страницах вашего веб-сайта, например, на страницах отдельных товаров, страницах статей и даже на главной странице. Главное преимущество «Один клик» заключается в том, что пользователи могут войти в систему или создать учетную запись, не покидая текущую страницу.
    • Автоматический вход в систему : Для повторно использующих приложение пользователей настоятельно рекомендуется включить опцию автоматического входа в систему в One Tap. Это позволит повторно входить в приложение пользователям, которые ранее дали согласие, без какого-либо взаимодействия с вашей системой.
    • Обзор : Раздел «Рекомендации по настройке и производительности One Tap» для оптимальной конфигурации.