Оптимизация аутентификации 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".
Это все!
Нажмите на кнопку "Сохранить изменения" внизу. Держите эту страницу открытой, так как она будет полезна для дальнейшей конфигурации.