第三方應用程式(OAuth / OIDC)
Logto 的第三方應用程式整合讓你能將 Logto 作為外部應用程式的 身分提供者 (IdP, Identity Provider)。
身分提供者 (IdP) 是一種驗證使用者身分並管理其登入憑證的服務。確認使用者身分後,IdP 會產生驗證權杖或斷言,讓使用者無需再次登入即可存取各種應用程式或服務。
與你在 整合 Logto 至你的應用程式 指南中建立、由你完全控制的應用程式不同,第三方應用程式是由外部開發者或商業夥伴開發的獨立服務。
這種整合方式非常適合常見的商業場景。你可以讓使用者用 Logto 帳號存取合作夥伴的應用程式,就像企業用戶用 Google Workspace 登入 Slack 一樣。你也可以打造一個開放平台,讓第三方應用程式新增「使用 Logto 登入」功能,類似「使用 Google 登入」。
Logto 是一個基於 OpenID Connect (OIDC) 協議的身分服務,提供 驗證 (Authentication) 與 授權 (Authorization) 能力。這讓 OIDC 第三方應用程式的整合就像傳統 Web 應用程式一樣簡單。
由於 OIDC 建立於 OAuth 2.0 之上,並新增了驗證層,因此你也可以使用 OAuth 協議整合第三方應用程式。
在 Logto 建立第三方應用程式
- 前往 控制台 > 應用程式。
- 點擊「建立應用程式」按鈕,選擇「第三方應用程式」作為應用程式類型,並選擇以下其中一種整合協議:
- OIDC / OAuth
- 根據第三方應用程式的類型選擇應用程式型態:
- 傳統 Web:伺服器端渲染的應用程式(如 Node.js、PHP、Java),可在後端安全儲存 client secret。
- 單頁應用程式 (SPA):在瀏覽器端執行、無法安全儲存密鑰的應用程式(如 React、Vue、Angular)。
- 原生應用程式 (Native):在用戶裝置上執行的行動或桌面應用程式(如 iOS、Android、Electron)。
- 輸入應用程式名稱與描述,點擊「建立」按鈕,即可建立新的第三方應用程式。
所有建立的第三方應用程式都會在應用程式頁面的「第三方應用程式」分頁下分類顯示。這樣有助於你區分自有應用程式與第三方應用程式,方便統一管理。
整合指南
查找應用程式設定資訊
在應用程式詳細頁面,你可以找到整合所需的 Client ID、Client secret(僅限傳統 Web 應用程式)以及 OIDC 端點。
若第三方服務支援 OIDC 探索,只需提供 Discovery endpoint。否則,點擊 顯示端點詳情 以檢視所有端點,包括 授權端點 與 權杖端點。
整合支援第三方 IdP 的服務
若你要連接的服務或產品原生支援外部身分提供者設定(如企業級 SaaS 平台、協作工具),設定流程如下:
- 開啟該服務的 IdP 或 SSO 設定頁面。
- 從 Logto 複製 Client ID(如需則一併複製 Client secret),貼到服務設定中。
- 若服務支援 OIDC 自動探索,提供 Discovery endpoint;否則手動複製 授權端點 與 權杖端點。
- 從服務設定頁複製 Redirect URI,並新增至 Logto 應用程式的允許重導 URI。
- 若服務允許,請設定 scopes。Logto 為 OIDC 提供者,若需驗證使用者請包含
openidscope(可取得 ID 權杖與 UserInfo 端點)。若僅需 OAuth 資源存取,openidscope 可省略。
設定完成後,服務會自動處理 OAuth / OIDC 流程。
透過 OAuth / OIDC 協議整合
若第三方應用程式需以程式方式將 Logto 作為 IdP 整合,應實作標準的 授權碼流程 (Authorization Code Flow)。建議使用你所用程式語言的 OAuth 2.0 / OIDC 客戶端函式庫來實作。
- 傳統 Web
- 單頁應用程式 / 原生應用程式
傳統 Web 應用程式屬於機密用戶端(confidential clients),可在後端安全儲存 client secret。完整實作細節請參考 授權碼流程 (Authorization Code Flow)。
主要步驟:
- 啟動授權:將使用者導向 Logto 的授權端點,帶上
client_id、redirect_uri、response_type=code與scope。 - 處理回調:從重導取得授權
code。 - 交換權杖:由後端向權杖端點發送 POST 請求,帶上 code、
client_id與client_secret。
單頁應用程式與原生應用程式屬於公開用戶端(public clients),無法安全儲存密鑰。這類應用程式必須使用 PKCE(Proof Key for Code Exchange) 進行安全授權。完整實作細節請參考 授權碼流程 (Authorization Code Flow) 與 PKCE。
主要步驟:
- 產生 PKCE 參數:建立
code_verifier並推導code_challenge(SHA-256)。 - 啟動授權:將使用者導向授權端點,帶上
code_challenge與code_challenge_method=S256。 - 處理回調:從重導取得授權
code。 - 交換權杖:向權杖端點發送 POST 請求,帶上 code 與原始
code_verifier。
OIDC 第三方應用程式的使用者授權頁面 (Consent screen)
為了安全,所有 OIDC 第三方應用程式在經 Logto 驗證後,將會被導向 使用者授權頁面 (Consent screen) 進行授權。
所有第三方請求的 使用者資料權限、API 資源權限範圍、組織權限 以及組織成員資訊都會顯示在授權頁面上。
這些請求的權限僅在使用者點擊「授權」按鈕後才會授予第三方應用程式。

進階操作
瞭解如何管理 OIDC 第三方應用程式的權限。
自訂授權頁面外觀,讓其符合你的品牌識別,並提供一致的使用者體驗。
常見問題
如何確保使用者在授權頁面只能授權自己實際擁有的權限?
相關資源
使用案例:整合 Apache Answer,為你的用戶打造社群
使用 Logto 作為第三方身分提供者 (IdP)