Logto в действии: бесшовная интеграция Apache Answer для запуска сообщества для ваших пользователей
Демонстрируется, как использовать функцию стороннего приложения Logto для интеграции Apache Answer, создавая единую платформу сообщества, где пользователи могут бесперебойно получать поддержку, используя свои существующие учетные записи.
Создание отличного программного продукта — значительное достижение, но это лишь начало пути.
Долгосрочный успех и развитие любого приложения зависят от понимания и взаимодействия с его пользователями, что включает в себя сбор отзывов, выявление болевых точек, ответы на вопросы и решение проблем —— это ключевая цикличность, стимулирующая итерации и улучшения.
В этой статье я:
- Объясню, как работает функция стороннего приложения (OIDC) Logto.
- Покажу, как использовать Logto для интеграции Apache Answer для создания сообщества для ваших пользователей, позволяя им задавать вопросы, делиться идеями и получать помощь от вашей команды и других пользователей.
Основным преимуществом использования Logto является то, что пользователи входят в сообщество с той же учетной записью, что и в вашей системе. Это позволяет легко знать текущее состояние пользователей, задающих вопросы, устраняя необходимость в многократных обменах информацией для выяснения их положения в вашем программном обеспечении.
Что такое Apache Answer
Apache Answer — это платформа вопросов и ответов с открытым исходным кодом, которая объединяет пользователей и команды. Она создает пространство для обмена знаниями и совместного решения проблем. Платформа включает в себя предпросмотр Markdown в реальном времени, расширенный поиск и систему голосования за контент.
Платформа поддерживает вход через OAuth 2.0 из коробки. Это делает её естественно совместимой с существующими провайдерами идентификации, такими как Logto. Пользователи могут войти, используя свои существующие учетные записи, не создавая новых учетных данных специально для платформы сообщества.
Понимание функции стороннего приложения Logto
Когда мы хотим, чтобы пользователи входили в сторонние приложения, используя свои учетные записи Logto, Logto выступает в качестве вашего провайдера идентификации (IdP).
Представьте это как центральный орган, отвечающий за проверку, кто ваши пользователи. Когда пользователь входит в ваше главное приложение, его, вероятно, перенаправляют на Logto для выполнения процесса аутентификации (имя пользователя/пароль, социальный вход и т. д.). После того, как Logto успешно проверяет пользователя, он сообщает вашему приложению: «Да, это законный пользователь», и предоставляет некоторую основную информацию о нем.
Этот концепт простирается за пределы вашего основного приложения. Logto включает в себя мощную функцию —— Стороннее приложение. Эта функция позволяет Logto выполнять свою роль IdP не только для вашего собственного приложения, но и для других внешних приложений, к которым вы хотите предоставить доступ вашим пользователям.
Это достигается с помощью OpenID Connect (OIDC), который является стандартным слоем идентификации, основанным на протоколе OAuth 2.0. Проще говоря, OIDC позволяет приложению (например, Apache Answer, известное как «Клиент») запрашивать и получать информацию о личности пользователя от IdP (Logto).
Когда вы настраиваете OIDC-приложение внутри Logto для Apache Answer, вы по сути говорите Logto: «Будь готов аутентифицировать пользователей от имени Apache Answer, если оно попросит, и если пользователь одобрит, безопасно отправь Answer некоторые основные детали пользователя.» Эта возможность открывает ключ к бесшовному единому входу в систему (SSO) между вашим приложением, аутентифицированным Logto, и сторонними инструментами, такими как Apache Answer.
Установка сцены: YourApp + Logto + Apache Answer
Прежде чем погрузиться в настройки, давайте уточним компоненты, участвующие в нашем сценарии:
- YourApp: Это ваше основное веб или мобильное приложение, где пользователи уже регистрируются и входят. Важно, что YourApp интегрировано с Logto для аутентификации.
- Logto: Ваша центральная IAM-платформа, выступающая IdP. У ваших пользователей есть учетные записи, управляемые Logto.
- Apache Answer: Платформа вопросов и ответов с открытым исходным кодом, которую вы хотите развернуть как центральное сообщество для пользователей YourApp. Наша цель — настроить Answer для использования Logto для входа, вместо собственной системы и мени пользователя/пароля.
Практические шаги: Настройка Logto и Apache Answer
Теперь перейдем к практике. Процесс включает настройку как Logto, так и Apache Answer.
Установка Apache Answer
Следуйте официальному руководству по установке для установки Apache Answer. И, наконец, по умолчанию вы можете получить к нему доступ по адресу http://localhost:9080
.
Создание OIDC-приложения в Logto
- Войдите в вашу консоль Logto.
- Перейдите на страницу приложений.
- Нажмите «Создать приложение» в верхнем правом углу страницы (если вы не видите этой кнопки, нажмите «просмотреть все» в нижней части списка).
- Выберите категорию «Стороннее приложение», затем выберите «OIDC».
- Введите имя приложения (например, "Apache Answer Community") и описание (необязательно).
- Нажмите «Создать» для завершения создания. После создания приложения вас перенаправят на страницу деталей приложения.
- На странице деталей добавьте
http://localhost:9080/answer/api/v1/connector/redirect/basic
в поле Redirect URI. - Нажмите «Сохранить», чтобы сохранить приложение.
Настройка разрешений для Apache Answer
- На странице деталей приложения перейдите на вкладку Разрешения.
- Под Разрешение данных пользователя вы увидите сообщение «Вы еще не настроили ни одного разрешения для данных пользователя.»
- Нажмите кнопку Добавить, чтобы настроить, какую пользовательскую информацию Apache Answer может получить доступ.
- Выберите необходимые области (
profile
иemail
), чтобы позволить Apache Answer получать основную информацию о пользователе при входе в систему. - Сохраните настройки разрешений.
Настройка входа через OAuth в Apache Answer
- Войдите в ваш Apache Answer, используя учетную запись администратора.
- Посетите панель администратора по адресу
http://localhost:9080/admin
. - Перейдите в Плагины -> Установленные плагины и активируйте плагин OAuth2 Basic.
- Перейдите на страницу плагина OAuth2 Basic.
- Заполните следующую информацию в соответствии со сторонним приложением Logto, которое вы только что создали:
- Name: Имя вашего коннектора, которое будет отображаться на странице входа.
- Client ID: "App ID" со страницы деталей приложения.
- Client Secret: "App Secret" из раздела "Параметры и учетные данные" со страницы деталей.
- Authorize URL: "Authorization endpoint" из раздела "Параметры и учетные данные" со страницы деталей.
- Token URL: "Token endpoint" из раздела "Параметры и учетные данные" со страницы деталей.
- User JSON URL: "Userinfo endpoint" из раздела "Параметры и учетные данные" со страницы деталей.
- User ID JSON Path:
sub
. - User Display Name JSON Path:
name
. - User Username JSON Path:
username
. - User Email JSON Path:
email
. - User Avatar JSON Path:
picture
. - User Email Verified JSON Path:
email_verified
. - Scopes:
openid,profile,email
.
- Сохраните конфигурацию плаги на в Apache Answer.
Примечание: Обязательно включите область openid
, которая требуется стандартом OIDC для получения информации пользователя из URL JSON пользователя. Поскольку стороннее приложение Logto реализовано на основе OIDC, а плагин Apache Answer использует OAuth 2.0, эта область необходима для обеспечения правильного потока аутентификации между двумя системами.
Контрольная точка: Тестирование интеграции
С обоими настроенными Logto и Apache Answer, давайте посмотрим на бесперебойный пользовательский опыт:
- Посетите ваш Apache Answer, вы увидите кнопку "Connect with Logto" на странице входа.
-
Нажмите на кнопку, вас перенаправят на страницу входа Logto.
-
После нажатия кнопки "Connect with Logto", вы будете перенаправлены на Logto, где сможете войти с использованием существующей учетной записи. Затем вы увидите страницу согласия, запрашивающую разрешение на общий доступ к вашей информации с Apache Answer.
- После одобрения разрешения вас перенаправят обратно на Apache Answer, и вы увидите, что вы вошли в систему!
Примечание: Apache Answer проверяет, имеет ли вошедший пользователь подтверждённый адрес электронной почты. Если у вашего пользователя нет информации о почте, Apache Answer попросит его указать адрес электронной почты для проверки.
Подытоживание преимуществ интеграции
Зачем проходить эти шаги? Преимущества значительны:
- Пользовательский опыт: Это наиболее очевидная победа. Пользователям не нужно создавать или запоминать ещё один набор учётных данных. Они используют проверенный вход, предоставляя плавный и беспрепятственный вход в сообщество. Это значительно снижает порог для участия.
- Эффективность разработки: Вы полностью обходите необходимость в создании и поддержании отдельных потоков аутентификации пользователей, регистраций, сбросов паролей и т. д. в Apache Answer. Мгновенно используете существующую базу пользователей Logto, позволяя вам запустить сообщество гораздо быстрее.
- Безопасность: Аутентификация делегируется Logto, вашему специализированному провайдеру IAM, который, вероятно, более надёжно обрабатывает аспекты безопасности, такие как многофакторная аутентификация (MFA), политики паролей и защита от грубых атак по сравнению с индивидуальной реализацией в Answer. Вы полагаетесь на зрелый и хорошо проверенный стандарт OIDC.
- Ценность продукта и эффективность поддержки: Вы мгновенно добавляете ценную функцию сообщества, не фрагментируя идентичность пользователя. Как уже отмечалось, знание, что пользователь сообщества — тот же, что и пользователь продукта, позволяет вашей команде поддержки предоставлять гораздо более контекстуализированную и эффективную помощь, повышая удовлетворённость и вовлечённость пользователей.