Оптимизация аутентификации OAuth и OIDC с помощью Logto
Наше сообщество выразило интерес в использовании Logto в качестве поставщика удостоверений для определенных продуктов, таких как плагины Outline или ChatGPT. В теории, Logto может служить поставщиком OAuth или OIDC (OpenID Connect), если продукт, который вы хотите интегрировать, поддерживает один из этих протоколов.
Logto — это простое в использовании решение для управления идентификацией, предлагающее все необходимые функции. Он поддерживает различные способы входа, такие как имена пользователей, электронная почта, номера телефонов и популярные социальные сети, такие как Google и GitHub. Независимо от того, являетесь ли вы частным лицом или компанией любого размера, Logto предоставляет идеальное решение для управления идентификацией и доступом клиентов (CIAM), адаптированное к специфическим потребностям вашего проекта.
Введение
Наше сообщество выразило интерес в использовании Logto в качестве поставщика удостоверений для определенных продуктов, таких как плагины Outline или ChatGPT. В теории, Logto может служить поставщиком OAuth 2.0 (OAuth) или OpenID Connect (OIDC), если продукт, который вы хотите интегрировать, поддерживает один из этих протоколов.
В этой статье мы предлагаем общий учебник по интеграции OAuth или OIDC с использованием Logto в качестве поставщика удостоверений. Кроме того, мы предоставляем специальные руководства для конкретных интеграций, включая:
- Реализация аутентификации пользователей плагинов ChatGPT с Logto
- Упрощение аутентификации Outline с помощью Logto
Хотя некоторые детали могут различаться в зависимости от продуктов, основная конфигурация остается универсальной. Если у вас есть вопросы или вам нужна дополнительная помощь, мы рекомендуем вам присоединиться к нашему серверу Discord для дальнейшего обсуждения.
Давайте начнем!
Требования
Прежде чем начать, убедитесь, что у вас есть следующее:
- Запущенный экземпляр Logto или доступ к учетной записи Logto Cloud.
- Продукт, поддерживающий стороннего поставщика удостоверений OAuth или OIDC (именуемый "продуктом").
Настройка Logto
Если вы самостоятельно размещаете Logto, обратитесь к документации Logto "Начало работы", чтобы настроить ваш экземпляр Logto.
Откройте Logto Console, перейдя по URL https://cloud.logto.io/
, если вы используете Logto Cloud, или используйте конечную точку, которую вы настроили для самостоятельного размещения.
Создание приложения
Перейдите на вкладку "Приложения" и нажмите на "Создать приложение".
В появившемся модальном окне выберите "Традиционное веб-приложение" и укажите имя приложения, например, "Мое приложение". Нажмите на "Создать приложение".
Вы будете перенаправлены на страницу с учебником в 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
В альтернативном случае он может называться "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".
Это все!
Нажмите на кнопку "Сохранить изменения" внизу. Держите эту страницу открытой, так как она будет полезна для дальнейшей конфигурации.
Настройка продукта
Следуйте шагам, описанным в документации продукта по конфигурации OAuth или OIDC.
Базовая конфигурация
Большинство необходимых значений конфигурации можно найти на странице с деталями приложения Logto. Некоторые имена могут иметь алиасы, поэтому обратитесь к таблице ниже для справки:
Имя Logto | Алиасы | Использование |
---|---|---|
App ID | Идентификатор приложения, Идентификатор клиента | |
App Secret | Секрет приложения, Секрет клиента | |
Redirect URI | URL перенаправления, Callback URI, Callback URL | Перенаправление после входа |
Post Sign-out Redirect URIs | URL перенаправления после выхода, URI после выхода, URL после выхода | Перенаправление после выхода |
Authorization Endpoint | URI авторизации, URL авторизации, Точка авторизации, URL авторизации | Начальная аутент ификация |
Token Endpoint | URL токена, URI токена | Запрос на предоставление токена |
Userinfo Endpoint | URL информации о пользователе, 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_verified | логический | |
phone_number | строка | phone |
phone_number_verified | логический | phone |
Контрольная точка: Тестирование интеграции с Logto
Нажмите на кнопку входа в продукте, вы будете перенаправлены на опыт входа в Logto.
Если все настроено правильно, после завершения процесса входа или регистрации в Logto вы будут перенаправлены обратно в продукт без ошибок.
И это завершает наше руководство по оптимизации аутентификации OAuth и OIDC с помощью Logto. Если у вас возникнут какие-либо проблемы во время интеграции, пожалуйста, не стесняйтесь обращаться к нам по электронной почте [email protected] или присоединиться к нашему серверу Discord!