Русский
  • auth
  • integration
  • oauth
  • oidc
  • identity

Оптимизация аутентификации OAuth и OIDC с помощью Logto

Наше сообщество выразило интерес в использовании Logto в качестве поставщика удостоверений для определенных продуктов, таких как плагины Outline или ChatGPT. В теории, Logto может служить поставщиком OAuth или OIDC (OpenID Connect), если продукт, который вы хотите интегрировать, поддерживает один из этих протоколов.

Gao
Gao
Founder

Logto — это простое в использовании решение для управления идентификацией, предлагающее все необходимые функции. Он поддерживает различные способы входа, такие как имена пользователей, электронная почта, номера телефонов и популярные социальные сети, такие как Google и GitHub. Независимо от того, являетесь ли вы частным лицом или компанией любого размера, Logto предоставляет идеальное решение для управления идентификацией и доступом клиентов (CIAM), адаптированное к специфическим потребностям вашего проекта.

Введение

Наше сообщество выразило интерес в использовании Logto в качестве поставщика удостоверений для определенных продуктов, таких как плагины Outline или ChatGPT. В теории, Logto может служить поставщиком OAuth 2.0 (OAuth) или OpenID Connect (OIDC), если продукт, который вы хотите интегрировать, поддерживает один из этих протоколов.

В этой статье мы предлагаем общий учебник по интеграции OAuth или OIDC с использованием Logto в качестве поставщика удостоверений. Кроме того, мы предоставляем специальные руководства для конкретных интеграций, включая:

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

Давайте начнем!

Требования

Прежде чем начать, убедитесь, что у вас есть следующее:

  • Запущенный экземпляр Logto или доступ к учетной записи Logto Cloud.
  • Продукт, поддерживающий стороннего поставщика удостоверений OAuth или OIDC (именуемый "продуктом").

Настройка Logto

Если вы самостоятельно размещаете Logto, обратитесь к документации Logto "Начало работы", чтобы настроить ваш экземпляр Logto.

Откройте Logto Console, перейдя по URL https://cloud.logto.io/, если вы используете Logto Cloud, или используйте конечную точку, которую вы настроили для самостоятельного размещения.

Создание приложения

Перейдите на вкладку "Приложения" и нажмите на "Создать приложение".

Вкладка "Приложения" в Logto Console

В появившемся модальном окне выберите "Традиционное веб-приложение" и укажите имя приложения, например, "Мое приложение". Нажмите на "Создать приложение".

Модальное окно "Создать приложение" показывает несколько типов приложений

Вы будете перенаправлены на страницу с учебником в Logto. Нажмите на "Пропустить" в верхнем правом углу, чтобы перейти на страницу деталей приложения.

Страница с деталями приложения

Настройка URI перенаправления

В разделе "Redirect URIs" введите значение, указанное в документации продукта. Обычно оно динамично на основе вашей конфигурации ID или конечной точки в продукте. Например, в плагинах ChatGPT URI перенаправления выглядит так:

https://chat.openai.com/aip/[ваш-id-плагина]/oauth/callback

Если ваш ID плагина foo123, значение должно быть:

https://chat.openai.com/aip/foo123/oauth/callback

Конфигурация раздела "URI перенаправления"

В альтернативном случае он может называться "Redirect URL", "Callback URI" или "Callback URL".

Необязательно: Убедитесь, что Logto выдает Refresh Token

Некоторые продукты могут требовать Refresh Token при отправке запросов на обмен токенов в Logto. Для OAuth необходимо лишь убедиться, что offline_access scope включен. Согласно протоколу OIDC, по умолчанию продукт также должен добавить параметр поиска prompt=consent в начальный запрос авторизации для потока кода авторизации; в противном случае Refresh Token не будет выдан.

Если продукт использует OAuth или не добавляет параметр prompt=consent или offline_access scope, но требует Refresh Token (например, плагины ChatGPT), прокрутите вниз до раздела "Дополнительные настройки" и включите "Всегда выдавать Refresh Token".

Переключатель "Всегда выдавать Refresh Token"

Это все!

Нажмите на кнопку "Сохранить изменения" внизу. Держите эту страницу открытой, так как она будет полезна для дальнейшей конфигурации.

Панель действий показывает кнопку "Сохран�ить изменения"

Настройка продукта

Следуйте шагам, описанным в документации продукта по конфигурации OAuth или OIDC.

Базовая конфигурация

Большинство необходимых значений конфигурации можно найти на странице с деталями приложения Logto. Некоторые имена могут иметь алиасы, поэтому обратитесь к таблице ниже для справки:

Имя LogtoАлиасыИспользование
App IDИдентификатор приложения, Идентификатор клиента
App SecretСекрет приложения, Секрет клиента
Redirect URIURL перенаправления, Callback URI, Callback URLПеренаправление после входа
Post Sign-out Redirect URIsURL перенаправления после выхода, URI после выхода, URL после выходаПеренаправление после выхода
Authorization EndpointURI авторизации, URL авторизации, Точка авторизации, URL авторизацииНачальная аутентификация
Token EndpointURL токена, URI токенаЗапрос на предоставление токена
Userinfo EndpointURL информации о пользователе, URI информации о пользователеПолучение информации о пользователе

Для современных продуктов "endpoint обнаружения" может быть достаточен. В таких случаях замените auth на .well-known/openid-configuration в точке авторизации. Например, если точка авторизации является https://default.logto.app/oidc/auth, endpoint обнаружения будет https://default.logto.app/oidc/.well-known/openid-configuration.

Необязательно: Конфигурация области действия

Если продукт поддерживает OIDC или требует, чтобы был выдан ID токен, добавьте openid profile в конфигурацию области действия. Обратитесь к таблице claim-scope ниже:

ПретензияТипТребуемая область
subстрокаopenid
nameстрокаprofile
usernameстрокаprofile
pictureстрокаprofile
emailстрокаemail
email_verifiedлогическийemail
phone_numberстрокаphone
phone_number_verifiedлогическийphone

Контрольная точка: Тестирование интеграции с Logto

Нажмите на кнопку входа в продукте, вы будете перенаправлены на опыт входа в Logto.

Опыт входа Logto

Если все настроено правильно, после завершения процесса входа или регистрации в Logto вы будут перенаправлены обратно в продукт без ошибок.

И это завершает наше руководство по оптимизации аутентификации OAuth и OIDC с помощью Logto. Если у вас возникнут какие-либо проблемы во время интеграции, пожалуйста, не стесняйтесь обращаться к нам по электронной почте [email protected] или присоединиться к нашему серверу Discord!

Дополнительное чтение