Русский
  • Idp
  • apache answer
  • community

Logto в действии: бесшовная интеграция Apache Answer для запуска сообщества для ваших пользователей

Демонстрируется, как использовать функцию стороннего приложения Logto для интеграции Apache Answer, создавая единую платформу сообщества, где пользователи могут бесперебойно получать поддержку, используя свои существующие учетные записи.

Yijun
Yijun
Developer

Хватит тратить недели на аутентификацию пользователей
Запускайте безопасные приложения быстрее с Logto. Интегрируйте аутентификацию пользователей за считанные минуты и сосредоточьтесь на вашем основном продукте.
Начать
Product screenshot

Создание отличного программного продукта — значительное достижение, но это лишь начало пути.

Долгосрочный успех и развитие любого приложения зависят от понимания и взаимодействия с его пользователями, что включает в себя сбор отзывов, выявление болевых точек, ответы на вопросы и решение проблем —— это ключевая цикличность, стимулирующая итерации и улучшения.

В этой статье я:

  • Объясню, как работает функция стороннего приложения (OIDC) Logto.
  • Покажу, как использовать Logto для интеграции Apache Answer для создания сообщества для ваших пользователей, позволяя им задавать вопросы, делиться идеями и получать помощь от вашей команды и других пользователей.

Основным преимуществом использования Logto является то, что пользователи входят в сообщество с той же учетной записью, что и в вашей системе. Это позволяет легко знать текущее состояние пользователей, задающих вопросы, устраняя необходимость в многократных обменах информацией для выяснения их положения в вашем программном обеспечении.

Что такое Apache Answer

apache-answer.png

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

Прежде чем погрузиться в настройки, давайте уточним компоненты, участвующие в нашем сценарии:

  1. YourApp: Это ваше основное веб или мобильное приложение, где пользователи уже регистрируются и входят. Важно, что YourApp интегрировано с Logto для аутентификации.
  2. Logto: Ваша центральная IAM-платформа, выступающая IdP. У ваших пользователей есть учетные записи, управляемые Logto.
  3. Apache Answer: Платформа вопросов и ответов с открытым исходным кодом, которую вы хотите развернуть как центральное сообщество для пользователей YourApp. Наша цель — настроить Answer для использования Logto для входа, вместо собственной системы имени пользователя/пароля.

Практические шаги: Настройка Logto и Apache Answer

Теперь перейдем к практике. Процесс включает настройку как Logto, так и Apache Answer.

Установка Apache Answer

Следуйте официальному руководству по установке для установки Apache Answer. И, наконец, по умолчанию вы можете получить к нему доступ по адресу http://localhost:9080.

Создание OIDC-приложения в Logto

  1. Войдите в вашу консоль Logto.
  2. Перейдите на страницу приложений.
  3. Нажмите «Создать приложение» в верхнем правом углу страницы (если вы не видите этой кнопки, нажмите «просмотреть все» в нижней части списка).
  4. Выберите категорию «Стороннее приложение», затем выберите «OIDC».
  5. Введите имя приложения (например, "Apache Answer Community") и описание (необязательно).
  6. Нажмите «Создать» для завершения создания. После создания приложения вас перенаправят на страницу деталей приложения.
  7. На странице деталей добавьте http://localhost:9080/answer/api/v1/connector/redirect/basic в поле Redirect URI.
  8. Нажмите «Сохранить», чтобы сохранить приложение.

Настройка разрешений для Apache Answer

  1. На странице деталей приложения перейдите на вкладку Разрешения.
  2. Под Разрешение данных пользователя вы увидите сообщение «Вы еще не настроили ни одного разрешения для данных пользователя.»
  3. Нажмите кнопку Добавить, чтобы настроить, какую пользовательскую информацию Apache Answer может получить доступ.
  4. Выберите необходимые области (profile и email), чтобы позволить Apache Answer получать основную информацию о пользователе при входе в систему.
  5. Сохраните настройки разрешений.

logto-grant-permissions.png

Настройка входа через OAuth в Apache Answer

  1. Войдите в ваш Apache Answer, используя учетную запись администратора.
  2. Посетите панель администратора по адресу http://localhost:9080/admin.
  3. Перейдите в Плагины -> Установленные плагины и активируйте плагин OAuth2 Basic.
  4. Перейдите на страницу плагина OAuth2 Basic.
  5. Заполните следующую информацию в соответствии со сторонним приложением 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.
  6. Сохраните конфигурацию плагина в Apache Answer.

Примечание: Обязательно включите область openid, которая требуется стандартом OIDC для получения информации пользователя из URL JSON пользователя. Поскольку стороннее приложение Logto реализовано на основе OIDC, а плагин Apache Answer использует OAuth 2.0, эта область необходима для обеспечения правильного потока аутентификации между двумя системами.

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

С обоими настроенными Logto и Apache Answer, давайте посмотрим на бесперебойный пользовательский опыт:

  1. Посетите ваш Apache Answer, вы увидите кнопку "Connect with Logto" на странице входа.

connect-with-logto.png

  1. Нажмите на кнопку, вас перенаправят на страницу входа Logto.

  2. После нажатия кнопки "Connect with Logto", вы будете перенаправлены на Logto, где сможете войти с использованием существующей учетной записи. Затем вы увидите страницу согласия, запрашивающую разрешение на общий доступ к вашей информации с Apache Answer.

consent-page.png

  1. После одобрения разрешения вас перенаправят обратно на Apache Answer, и вы увидите, что вы вошли в систему!

answer-dashboard.png

Примечание: Apache Answer проверяет, имеет ли вошедший пользователь подтверждённый адрес электронной почты. Если у вашего пользователя нет информации о почте, Apache Answer попросит его указать адрес электронной почты для проверки.

Подытоживание преимуществ интеграции

Зачем проходить эти шаги? Преимущества значительны:

  • Пользовательский опыт: Это наиболее очевидная победа. Пользователям не нужно создавать или запоминать ещё один набор учётных данных. Они используют проверенный вход, предоставляя плавный и беспрепятственный вход в сообщество. Это значительно снижает порог для участия.
  • Эффективность разработки: Вы полностью обходите необходимость в создании и поддержании отдельных потоков аутентификации пользователей, регистраций, сбросов паролей и т. д. в Apache Answer. Мгновенно используете существующую базу пользователей Logto, позволяя вам запустить сообщество гораздо быстрее.
  • Безопасность: Аутентификация делегируется Logto, вашему специализированному провайдеру IAM, который, вероятно, более надёжно обрабатывает аспекты безопасности, такие как многофакторная аутентификация (MFA), политики паролей и защита от грубых атак по сравнению с индивидуальной реализацией в Answer. Вы полагаетесь на зрелый и хорошо проверенный стандарт OIDC.
  • Ценность продукта и эффективность поддержки: Вы мгновенно добавляете ценную функцию сообщества, не фрагментируя идентичность пользователя. Как уже отмечалось, знание, что пользователь сообщества — тот же, что и пользователь продукта, позволяет вашей команде поддержки предоставлять гораздо более контекстуализированную и эффективную помощь, повышая удовлетворённость и вовлечённость пользователей.

Заключение

Интеграция сторонних инструментов необходима для создания богатой экосистемы приложений, но управление идентичностями пользователей в этих инструментах может стать серьёзной головной болью. Как мы показали на примере Apache Answer, функция стороннего приложения Logto (OIDC) предоставляет мощный и стандартизованный способ преодолеть этот разрыв.

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

Ещё более захватывающим является то, что этот шаблон не ограничивается лишь платформами вопросов и ответов; его можно применить к аналитическим панелям, инструментам управления проектами, внутренним утилитам и многим другим приложениям, что позволяет вам создать целостную и удобную для пользователя экосистему программного обеспечения.

Оставайтесь на связи для будущих статей, где мы, возможно, исследуем интеграцию других полезных инструментов с использованием Logto!