第三方應用程式(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 應用程式的允許 redirect URI 列表。
- 若服務允許,請設定 scopes。Logto 為 OIDC 提供者,若需驗證使用者請包含
openid權限範圍(可取得 ID 權杖與 UserInfo 端點)。若僅需 OAuth 資源存取,openid權限範圍為選填。
服務設定完成後,會自動處理 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。 - 處理回調:從 redirect 接收授權
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。 - 處理回調:從 redirect 接收授權
code。 - 交換權杖:以 POST 請求帶上 code 與原始
code_verifier至權杖端點。
透過裝置流程整合
對於運行於輸入受限裝置(如智慧電視、遊戲主機、CLI 工具)的原生第三方應用程式,標準的 redirect 授權碼流程可能不適用。此時可使用 OAuth 2.0 裝置授權授權 (Device Authorization Grant)。
裝置流程會在裝置上顯示一組使用者代碼與驗證網址。使用者在另一台裝置(手機、筆電)上造訪該網址,輸入代碼並完成驗證。裝置則持續輪詢 Logto 的權杖端點直到授權完成。
在實作裝置流程前,請先於 Logto 控制台為你的第三方應用程式設定所需的 權限。第三方應用程式若請求未啟用的權限範圍將被拒絕存取。
完整實作細節請參考 裝置流程快速入門。
OIDC 第三方應用程式的使用者授權頁面 (Consent screen)
出於安全考量,所有 OIDC 第三方應用程式在經 Logto 驗證後,將被導向 使用者授權頁面 (Consent screen) 進行授權。
所有第三方請求的 使用者資料權限、API 資源權限範圍、組織權限 以及組織成員資訊都會顯示於授權頁面。
這些請求的權限僅在使用者點擊「授權」按鈕後才會授予第三方應用程式。

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