Это руководство поможет вам выбрать между использованием библиотеки Google Identity Services для авторизации пользователей или внедрением собственной библиотеки JavaScript. Это поможет вам решить, какой поток авторизации OAuth 2.0 лучше всего подходит для вашего веб-приложения.
Предполагается, что перед прочтением данного руководства вы знакомы с терминами и понятиями, описанными в руководствах «Обзор и принцип работы авторизации пользователей» .
Библиотека ГИС запускается в этих поддерживаемых браузерах на устройстве пользователя. Он не предназначен для использования с серверными платформами JavaScript, такими как Node.js, вместо этого используется клиентская библиотека Google Node.js.
В этом руководстве рассматриваются только темы авторизации и обмена данными. Он не проверяет аутентификацию пользователя, вместо этого см. раздел «Вход с помощью Google» и руководство по переходу с Google по входу в систему для регистрации и входа пользователей.
Решение, подходит ли вам библиотека ГИС
Вы должны выбрать, использовать ли библиотеку Google или создать свою собственную, которая лучше всего соответствует вашим потребностям. Обзор возможностей и возможностей:
- Библиотека JavaScript служб идентификации Google реализует:
- Потоки согласия на основе всплывающих окон минимизируют перенаправления, что позволяет пользователям оставаться на вашем сайте на протяжении всего процесса авторизации.
- Функции безопасности, такие как подделка межсайтовых запросов (CRSF).
- Вспомогательные методы для запроса отдельных областей и подтверждения согласия пользователя.
- Удобная обработка ошибок и ссылки на документацию для использования инженерами во время разработки, а затем для посетителей вашего сайта.
- При реализации без библиотеки Identity Services вы несете ответственность за:
- Управление запросами и ответами с помощью конечных точек Google OAuth 2.0, включая перенаправления.
- Оптимизация пользовательского опыта.
- Реализация функций безопасности для проверки запросов, ответов и предотвращения CSRF.
- Методы подтверждения того, что пользователь предоставил согласие на любые запрошенные области.
- Управление кодами ошибок OAuth 2.0, создание удобочитаемых сообщений и ссылок на справку для пользователей.
Таким образом, Google предлагает библиотеку ГИС, которая поможет вам быстро и безопасно внедрить клиент OAuth 2.0 и оптимизировать процесс авторизации пользователя.
Выбор потока авторизации
Вам нужно будет выбрать один из двух потоков авторизации OAuth 2.0: неявный или код авторизации — независимо от того, решите ли вы использовать библиотеку JavaScript Google Identity Services или создать свою собственную библиотеку.
Оба потока приводят к созданию токена доступа, который можно использовать для вызова API Google.
Основные различия между этими двумя потоками заключаются в следующем:
- количество действий пользователя,
- будет ли ваше приложение вызывать API Google без присутствия пользователя,
- если серверная платформа необходима для размещения конечной точки и хранения токенов обновления для каждого пользователя для отдельных учетных записей пользователей, и
- более высокий или более низкий уровень безопасности пользователя.
При сравнении потоков и оценке требований к безопасности следует учитывать тот факт, что уровень безопасности пользователей варьируется в зависимости от выбранных вами областей. Например, просмотр приглашений календаря только для чтения может считаться менее рискованным, чем использование области чтения и записи для редактирования файлов на Диске.
Сравнение потоков OAuth 2.0
Неявный поток | Поток кода авторизации | |
Требуется согласие пользователя | Для каждого запроса токена, включая замену токенов с истекшим сроком действия. | Только для первого запроса токена. |
Пользователь должен присутствовать | Да | Нет, поддерживает автономное использование. |
Безопасность пользователя | Наименее | Большинство из них имеет аутентификацию клиента и позволяет избежать рисков, связанных с обработкой токенов в браузере. |
Токен доступа выдан | Да | Да |
Выдан токен обновления | Нет | Да |
Требуется поддерживаемый браузер | Да | Да |
Токен доступа, используемый для вызова API Google | только из веб-приложения, работающего в браузере пользователя. | либо с сервера, работающего на серверной платформе, либо из веб-приложения, работающего в браузере пользователя. |
Требуется серверная платформа | Нет | Да, для хостинга и хранения конечных точек. |
Требуется безопасное хранилище | Нет | Да, для обновления хранилища токенов. |
Требуется размещение конечной точки кода авторизации. | Нет | Да, для получения кодов авторизации от Google. |
Поведение истечения срока действия токена доступа | Жест пользователя, такой как нажатие кнопки или щелчок по ссылке, необходим для запроса и получения нового действительного токена доступа. | После первоначального запроса пользователя ваша платформа обменивает сохраненный токен обновления на новый действительный токен доступа, необходимый для вызова API Google. |