Прежде чем добавить на свой веб-сайт вход с помощью Google, вход в одно касание или автоматический вход, настройте конфигурацию OAuth и, при необходимости, настройте политику безопасности контента вашего сайта.
Получите идентификатор клиента Google API
Чтобы включить вход через Google на своем веб-сайте, сначала необходимо настроить идентификатор клиента Google API. Для этого выполните следующие шаги:
- Откройте принадлежащий .
- Создайте или выберите проект. Если у вас уже есть проект для кнопки «Войти с помощью Google» или Google One Tap, используйте существующий проект и идентификатор веб-клиента. При создании производственных приложений может потребоваться несколько проектов . Повторите оставшиеся шаги этого раздела для каждого проекта, которым вы управляете.
- Нажмите «Создать клиент» и в поле «Тип приложения» выберите «Веб-приложение» , чтобы создать новый идентификатор клиента. Чтобы использовать существующий идентификатор клиента, выберите один из типов Веб-приложение .
Добавьте URI вашего веб-сайта в авторизованные источники JavaScript . URI включает только схему и полное имя хоста. Например,
https://www.example.com
.При желании учетные данные могут быть возвращены с помощью перенаправления на конечную точку, которую вы размещаете, а не через обратный вызов JavaScript. В этом случае добавьте URI перенаправления в раздел «Авторизованные URI перенаправления» . URI перенаправления включают схему, полное имя хоста и путь и должны соответствовать правилам проверки URI перенаправления . Например,
https://www.example.com/auth-receiver
.
Настройте экран согласия OAuth
И «Вход через Google», и аутентификация One Tap включают в себя экран согласия, который сообщает пользователям, какое приложение запрашивает доступ к их данным, какие данные они запрашивают и какие условия применяются.
- Откройте раздела Платформа Google Auth на.
- При появлении запроса выберите только что созданный проект.
На , заполните форму и нажмите кнопку «Сохранить».
Имя приложения: имя приложения, запрашивающего согласие. Имя должно точно отражать ваше приложение и соответствовать имени приложения, которое пользователи видят в других местах.
Логотип приложения: это изображение отображается на экране согласия, чтобы помочь пользователям узнать ваше приложение. Логотип отображается на экране согласия «Вход с помощью Google» и в настройках учетной записи , но не отображается в диалоговом окне «В одно касание».
Электронная почта службы поддержки: отображается на экране согласия для поддержки пользователей и для администраторов G Suite, оценивающих доступ к вашему приложению для своих пользователей. Этот адрес электронной почты отображается пользователям на экране согласия «Вход с помощью Google», когда пользователь щелкает имя приложения.
Авторизованные домены. Чтобы защитить вас и ваших пользователей, Google разрешает использовать авторизованные домены только приложениям, которые проходят аутентификацию с использованием OAuth. Ссылки ваших приложений должны размещаться на авторизованных доменах. Узнать больше .
Ссылка на домашнюю страницу приложения: отображается на экране согласия «Вход в систему с помощью Google» и информацией об отказе от ответственности, соответствующей требованиям GDPR, в одно касание под кнопкой «Продолжить как». Должен быть размещен на авторизованном домене.
Ссылка на политику конфиденциальности приложения: отображается на экране согласия «Вход в систему с помощью Google» и информацией об отказе от ответственности, соответствующей требованиям GDPR, под кнопкой «Продолжить как». Должен быть размещен на авторизованном домене.
Ссылка на Условия использования приложения (необязательно): отображается на экране согласия «Вход в систему с помощью Google», а также информация об отказе от ответственности, соответствующая требованиям GDPR, в одно касание под кнопкой «Продолжить как». Должен быть размещен на авторизованном домене.
Перейдите к чтобы настроить области действия вашего приложения.
- Области для API Google . Области позволяют вашему приложению получать доступ к личным данным вашего пользователя. Для аутентификации достаточно области по умолчанию (электронная почта, профиль, openid), вам не нужно добавлять какие-либо конфиденциальные области. Обычно рекомендуется запрашивать области постепенно , в тот момент, когда требуется доступ, а не заранее.
Проверьте «Статус проверки». Если ваше приложение требует проверки, нажмите кнопку «Отправить на проверку», чтобы отправить заявку на проверку. Подробную информацию см. в требованиях к проверке OAuth .
Отображение настроек OAuth во время входа в систему
Одно касание с использованием FedCM
Авторизованный домен верхнего уровня отображается во время согласия пользователя в Chrome. Поддерживается только использование One Tap в iframe из разных источников, но на одном и том же сайте .
Одно касание без FedCM
Имя приложения отображается во время согласия пользователя.
Рисунок 1. Настройки согласия OAuth, отображаемые с помощью One Tap в Chrome.
Политика безопасности контента
Политика безопасности контента не является обязательной, но рекомендуется для защиты вашего приложения и предотвращения атак с использованием межсайтовых сценариев (XSS). Чтобы узнать больше, см. Введение в CSP и CSP и XSS .
Ваша политика безопасности контента может включать одну или несколько директив, таких как connect-src
, frame-src
, script-src
, style-src
или default-src
.
Если ваш CSP включает в себя:
-
connect-src
добавьтеhttps://accounts.google.com/gsi/
, чтобы страница могла загружать родительский URL-адрес для конечных точек на стороне сервера Google Identity Services. - В директиве
frame-src
добавьтеhttps://accounts.google.com/gsi/
, чтобы разрешить родительский URL-адрес кнопки iframe «Одно касание и вход с помощью Google». -
script-src
добавьтеhttps://accounts.google.com/gsi/client
, чтобы разрешить URL-адрес библиотеки JavaScript Google Identity Services. -
style-src
добавьтеhttps://accounts.google.com/gsi/style
, чтобы разрешить URL-адрес таблиц стилей служб идентификации Google. - Директива
default-src
, если она используется, является резервной, если какая-либо из предыдущих директив (connect-src
,frame-src
,script-src
илиstyle-src
) не указана, добавьтеhttps://accounts.google.com/gsi/
чтобы страница могла загружать родительский URL-адрес для конечных точек серверных служб Google Identity Services.
Избегайте перечисления отдельных URL-адресов ГИС при использовании connect-src
. Это помогает минимизировать сбои при обновлении ГИС. Например, вместо добавления https://accounts.google.com/gsi/status
используйте родительский URL-адрес ГИС https://accounts.google.com/gsi/
.
Этот пример заголовка ответа позволяет службам идентификации Google загружаться и успешно выполняться:
Content-Security-Policy-Report-Only: script-src
https://accounts.google.com/gsi/client; frame-src
https://accounts.google.com/gsi/; connect-src https://accounts.google.com/gsi/;
Политика открытия кросс-происхождения
Кнопка «Войти с помощью Google» и Google One Tap могут потребовать внесения изменений в вашу Cross-Origin-Opener-Policy
(COOP) для успешного создания всплывающих окон.
Когда FedCM включен, браузер напрямую отображает всплывающие окна, и никаких изменений не требуется.
Однако, когда FedCM отключен, установите заголовок COOP:
-
same-origin
и - включить
same-origin-allow-popups
.
Невозможность установить правильный заголовок нарушает связь между окнами, что приводит к пустому всплывающему окну или аналогичным ошибкам.