Logto 的應用:無縫整合 Apache Answer 為用戶建立一個社群
展示如何利用 Logto 的第三方應用功能整合 Apache Answer,建立一個統一的社群平台,讓用戶能使用其現有的帳戶無縫訪問支援。
建立一個出色的軟件產品是一項重大成就,但這確實只是旅程的開始。
任何應用程式的長期成功和發展在很大程度上取決於了解和參與用戶,這涉及收集反饋、識別痛點、回答問題和解決問題 —— 這是一個驅動迭代和改進的關鍵循環。
在本文中,我將:
- 解釋 Logto 的第三方應用(OIDC)功能如何運作。
- 向你展示如何使用 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)。
當你在 Logto 為 Apache Answer 配置一個 OIDC 應用時,你本質上是在告訴 Logto:“準備代表 Apache Answer 驗證用戶,如果用戶同意,安全地向 Answer 發送一些基本的用戶 身份資料。”這一能力是實現 Logto 身份驗證應用和第三方工具如 Apache Answer 之間無縫單點登錄(SSO)的關鍵。
設置場景:YourApp + Logto + Apache Answer
在深入配置之前,我們先澄清一下我們場景中涉及的組件:
- YourApp: 這是你的主要 Web 或移動應用,用戶已經在這裡註冊和登錄。關鍵是,YourApp 已經集成了 Logto 以進行身份驗證。
- Logto: 你的中央 IAM 平台,作為 IdP。你的用戶帳戶由 Logto 管理。
- Apache Answer: 你希望部署作為 YourApp 用戶社區中心的開源問答平台。我們的目標是將 Answer 配置為使用 Logto 登錄,而不是它自己的本地用戶名/密碼系統。
實操步驟:配置 Logto 和 Apache Answer
現在,讓我們實際動手。這個過程涉及在 Logto 和 Apache Answer 中的配置。
安裝 Apache Answer
按照 官方安裝指南 安裝 Apache Answer。最後你可以默認訪問 http://localhost:9080
。
在 Logto 中創建一個 OIDC 應用
- 登錄到你的 Logto 控制台。
- 導航到應用頁面。
- 點擊頁面右上角的 “創建應用” 按鈕(如果你看不到此按鈕,請在框架列表底部點擊“查看全部”)。
- 選擇 “第三方應用” 類別,然後選擇 “OIDC”。
- 輸入應用名稱(例如,“Apache Answer Community”)和描述(可選)。
- 點擊 “創建” 完成創建。創建應用後,你將被重定向到應用詳情頁。
- 在詳情頁中,添加
http://localhost:9080/answer/api/v1/connector/redirect/basic
到 重定向 URI 欄位。 - 點擊 “保存” 保存應用。
配置 Apache Answer 的權限
- 在應用詳情頁,導航到 權限 標籤。
- 在 授予用戶數據的權限 下,你會看到一條消息說“你還沒有設置任何用戶數據授予權限”。
- 點擊 添加 按鈕,配置 Apache Answer 能夠訪問的用戶信息。
- 選擇必要的範圍(
profile
和email
)以允許 Apache Answer 在登錄時接收基本的用戶信息。 - 保存你的權限設置。
在 Apache Answer 中配置 OAuth 登錄
- 使用管理員帳戶登錄你的 Apache Answer。
- 訪問
http://localhost:9080/admin
的 管理 面板。 - 導航到 插件 -> 已安裝插件 並啟用 OAuth2 Basic 插件。
- 導航到 OAuth2 Basic 插件頁面。
- 根據你剛才創建的 Logto 第三方應用填寫以下信息:
- 名稱:登錄頁面將顯示的連接器名稱
- 客戶端 ID:應用詳情頁中的“應用 ID”。
- 客戶端密鑰:詳情頁“端點和憑證”部分的“應用秘密”。
- 授權 URL:詳情頁“端點和憑證”部分的“授權端點”。
- Token URL:詳情頁“端點和憑證”部分的“Token 端點”。
- 用戶 JSON URL:詳情頁“端點和憑證”部分的“用戶信息端點”。
- 用戶 ID JSON 路徑:
sub
。 - 用戶顯示名稱 JSON 路徑:
name
。 - 用戶用戶名 JSON 路徑:
username
。 - 用戶電郵 JSON 路徑:
email
。 - 用戶頭像 JSON 路徑:
picture
。 - 用戶電郵驗證 JSON 路徑:
email_verified
。 - 範圍:
openid,profile,email
。
- 保存 插件配置在 Apache Answer。
注意:一定要包括 openid
範圍,這是 OIDC 標準要求從用戶 JSON URL 獲取用戶信息所必需的。由於 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 標準。
- 產品價值與支援效率: 你迅速新增了一個有價值的社群功能而不會分散用戶身份。正如先前所述,了解到社群用戶就是產品用戶能夠賦予你的支援團隊提供更多上下文的和高效的幫助,提升用戶滿意度和參與度。
結論
整合第三方工具對於構建豐富的應用生態系統至關重要,但在這些工具中管理用戶身份可能成為一個重大挑戰。正如我們用 Apache Answer 演示的那樣,Logto 的第三方應用(OIDC)功能提供了一種強大而標準化的橋接方式。
通過配置 Logto 作為 Apache Answer 的中央身份提供者,你可以有效地 “一鍵啟動” 為你現有用戶提供專用的社群空間,為他們提供無縫的登錄體驗,並為你的團隊提供統一用戶身份的好處。
更令人興奮的是 ,這種模式不僅限於問答平台,它可以應用到分析儀表板、專案管理工具、內部實用程式和無數其他應用中,使你能夠構建一個連貫且用戶友好的軟件生態系統。
敬請關注未來的文章,可能會探索使用 Logto 整合其他有用的工具!