應用程式資料結構
簡介
在 Logto 中,應用程式 指的是在 Logto 平台上註冊並獲得授權以存取使用者資訊或代表使用者執行操作的特定軟體程式或服務。應用程式用於識別向 Logto API 發出的請求來源,並管理使用者存取這些應用程式的驗證和授權過程。
在 Logto 的登入體驗中使用應用程式,讓使用者能夠從單一位置輕鬆存取和管理其授權的應用程式,並提供一致且安全的驗證過程。這有助於簡化使用者體驗,確保只有授權的個人能夠存取敏感資訊或代表組織執行操作。
應用程式也用於 Logto 的審計日誌中,以追蹤使用者活動並識別任何潛在的安全威脅或漏洞。透過將特定操作與特定應用程式關聯,Logto 可以提供有關資料如何被存取和使用的詳細見解,讓組織更好地管理其安全性和合規性要求。如果你想將應用程式與 Logto 整合,請參閱 整合 Logto。
屬性
應用程式 ID
應用程式 ID 是一個自動生成的唯一鍵,用於在 Logto 中識別你的應用程式,在 OAuth 2.0 中被稱為 client id。
應用程式類型
應用程式 可以是以下應用程式類型之一:
- 原生應用程式 是在原生環境中運行的應用程式。例如,iOS 應用程式、Android 應用程式。
- 裝置流應用程式 是一種特殊類型的原生應用程式,適用於輸入受限的裝置或無頭應用程式(例如,智慧電視、遊戲主機、CLI 工具、IoT 裝置)。它使用 OAuth 2.0 裝置授權授予 而非標準的重定向流程。詳情請參閱 裝置流快速入門。
- 單頁應用程式 是在網頁瀏覽器中運行的應用程式,透過從伺服器獲取新資料來更新頁面,而不需加載整個新頁面。例如,React DOM 應用程式、Vue 應用程式。
- 傳統網頁應用程式 是由網頁伺服器單獨渲染和更新頁面的應用程式。例如,JSP、PHP。
- 機器對機器 (M2M) 應用程式 是在機器環境中運行的應用程式,用於直接的服務對服務通信,無需使用者互動。
應用程式密鑰
應用程式密鑰 是用於在驗證系統中驗證應用程式的密鑰,特別是針對私有客戶端(傳統網頁和 M2M 應用程式)作為私有安全屏障。
單頁應用程式 (SPA) 和原生應用程式不提供應用程式密鑰。SPA 和原生應用程式是「公共客戶端」,無法保密(瀏覽器代碼或應用程式包可被檢查)。Logto 透過 PKCE、嚴格的 redirect URI/CORS 驗證、短期存取權杖和重新整理權杖輪換來保護它們。
應用程式名稱
應用程式名稱 是應用程式的人類可讀名稱,將顯示在管理控制台中。
應用程式名稱 是在 Logto 中管理應用程式的重要組成部分,因為它允許管理員輕鬆識別和追蹤平台中各個應用程式的活動。
需要注意的是,應用程式名稱 應謹慎選擇,因為它將對所有有權訪問管理控制台的使用者可見。它應準確反映應用程式的目的和功能,同時易於理解和識別。
描述
應用程式的簡短描述將顯示在管理控制台的應用程式詳細資訊頁面上。描述旨在為管理員提供有關應用程式的其他資訊,例如其目的、功能和任何其他相關細節。
Redirect URIs
Redirect URIs 是為應用程式預先配置的一組有效的重定向 URI。當使用者登入 Logto 並嘗試訪問應用程式時,他們將被重定向到應用程式設定中指定的允許 URI 之一。
允許的 URI 列表用於驗證應用程式在驗證過程中發送給 Logto 的授權請求中包含的重定向 URI。如果授權請求中指定的重定向 URI 與應用程式設定中的允許 URI 之一匹配,則使用者在成功驗證後將被重定向到該 URI。如果重定向 URI 不在允許列表中,則使用者將不會被重定向,驗證過程將失敗。
確保所有有效的重定向 URI 都已添加到 Logto 中應用程式的允許列表中,以確保使用者在驗證後能夠成功訪問應用程式。
你可以查看 Redirection endpoint 以獲取更多資訊。
理解 OIDC 中的重定向 URI 與授權碼流程
通配符模式
可用性:單頁應用程式、傳統網頁應用程式
重定向 URI 支援通配符模式 (*) 用於動態環境,例如預覽部署。通配符可以用於 HTTP/HTTPS URI 的主機名和路徑名組件。
規則:
- 通配符僅允許在主機名和路徑名中使用
- 通配符不允許在協議、端口、查詢參數或哈希片段中使用
- 主機名通配符必須至少包含一個點(例如,
https://*.example.com/callback)
範例:
https://*.example.com/callback- 匹配任何子域https://preview-*.example.com/callback- 匹配預覽部署https://example.com/*/callback- 匹配任何路徑段
通配符重定向 URI 不是標準 OIDC,可能增加攻擊面。請謹慎使用,並在可能的情況下優先使用精確的重定向 URI。
登出後重定向 URIs
登出後重定向 URIs 是為應用程式預先配置的一組有效 URI,用於在使用者從 Logto 登出後重定向使用者。
使用允許的 登出後重定向 URIs 是 OIDC 中 RP 發起(Relying Party Initiated)登出規範的一部分。此規範提供了一種標準化的方法,讓應用程式為使用者發起登出請求,這包括在使用者登出後將其重定向到預先配置的端點。
當使用者從 Logto 登出時,他們的會話將被終止,並被重定向到應用程式設定中指定的允許 URI 之一。這確保使用者在登出後僅被引導到授權和有效的端點,幫助防止未經授權的訪問和與重定向使用者到未知或未驗證端點相關的安全風險。
你可以查看 RP-initiated logout 以獲取更多資訊。
CORS 允許的來源
CORS(跨來源資源共享)允許的來源 是一組允許的來源,這些來源可以向 Logto 服務發送請求。任何不在允許列表中的來源將無法向 Logto 服務發送請求。
CORS 允許的來源列表用於限制未經授權的域對 Logto 服務的訪問,並幫助防止跨站請求偽造(CSRF)攻擊。透過在 Logto 中為應用程式指定允許的來源,服務可以確保只有授權的域能夠向服務發送請求。
允許的來源列表應包含應用程式將被提供的來源。這確保來自應用程式的請求被允許,而來自未經授權來源的請求被阻止。
OpenID 提供者配置端點
授權端點
授權端點 是 OIDC 的一個術語,是用於啟動使用者驗證過程的必需端點。當使用者嘗試訪問已在 Logto 平台上註冊的受保護資源或應用程式時,他們將被重定向到 授權端點 以驗證其身分並獲得訪問請求資源的授權。
你可以查看 授權端點 以獲取更多資訊。
權杖端點
權杖端點 是 OIDC 的一個術語,是 OIDC 客戶端用來從 OIDC 提供者獲取存取權杖、ID 權杖或重新整理權杖的 Web API 端點。
當 OIDC 客戶端需要獲取存取權杖或 ID 權杖時,它會向權杖端點發送一個授權授予請求,通常是授權碼或重新整理權杖。權杖端點然後驗證授權授予,如果授予有效,則向客戶端發出存取權杖或 ID 權杖。
你可以查看 權杖端點 以獲取更多資訊。
使用者資訊端點
OpenID Connect 使用者資訊端點。
總是發出重新整理權杖
可用性:傳統網頁、SPA
啟用後,Logto 將始終發出重新整理權杖,無論驗證請求中是否出現 prompt=consent,或權限範圍中是否出現 offline_access。
然而,除非必要(通常對於某些需要重新整理權杖的第三方 OAuth 整合有用),否則不建議這樣做,因為這與 OpenID Connect 不兼容,可能會導致問題。
重新整理權杖輪換
預設:true
啟用後,Logto 將在以下條件下為權杖請求發出新的重新整理權杖:
- 如果重新整理權杖已被輪換(透過發出新權杖延長其 TTL)一年;或
- 如果重新整理權杖接近其過期時間(>=70% 的原始存活時間 (TTL) 已過);或
- 如果客戶端是公共客戶端,例如原生應用程式或單頁應用程式 (SPA)。
對於公共客戶端,啟用此功能時,當客戶端使用重新整理權杖交換新存取權杖時,將始終發出新的重新整理權杖。 雖然你仍然可以為這些公共客戶端關閉此功能,但強烈建議出於安全原因保持啟用。
重新整理權杖存活時間 (TTL)(以天為單位)
可用性:非 SPA;預設:14 天
重新整理權杖在過期並失效之前可用於請求新存取權杖的時間。權杖請求將把重新整理權杖的 TTL 延長到此值。
通常,較低的值是首選。
注意:出於安全原因,SPA(單頁應用程式)中無法刷新 TTL。這意味著 Logto 不會透過權杖請求延長 TTL。為了提升使用者體驗,你可以啟用「重新整理權杖輪換」功能,允許 Logto 在必要時發出新的重新整理權杖。
當在授權請求中未包含 offline_access 權限範圍時,發出的重新整理權杖將綁定到使用者會話。會話的固定 TTL 為 14 天。會話過期後,無論重新整理權杖的 TTL 設定如何,該權杖都將失效。
為確保重新整理權杖 TTL 設定完全生效,請確保在授權請求中包含 offline_access 權限範圍。
後台登出 URI
OpenID Connect 後台登出端點。詳情請參閱 聯邦登出:後台登出。
最大允許授權 (maxAllowedGrants)
maxAllowedGrants 是 customClientMetadata 下的一個可選應用程式級別欄位,用於控制當前應用程式中每個使用者的最大並發活動授權數量。
- 預設:
undefined(無限制) - 當配置時:在每次成功授權時,Logto 會檢查當前應用程式中使用者的總活動授權數量(跨瀏覽器和裝置)。如果超過限制,Logto 將撤銷最舊的授權。
當你想限制每個應用程式的並發驗證裝置時,此設置很有用。
此欄位不支援:
- 機器對機器應用程式
- 受保護應用程式
- SAML 應用程式
自訂資料
未列在預定義應用程式屬性中的其他自訂應用程式資訊,使用者可以根據其特定需求定義自己的自訂資料欄位,例如業務特定的設置和配置。