繁體中文(台灣)
用戶資料移動時的安全中心
比對認證和用戶資料。詳述 Logto 的安全存儲和移動。概述資料流最佳實踐(屬性映射、資料同步、客製化 JWT)。
用戶元資料是身份和訪問管理 (IAM) 服務的命脈。它驅動產品功能,如數據分析、個性化體驗、安全監控和訪問控制。但隨著應用程式在平台、組織和應用程式之間變得更加互聯,管理用戶元資料可能變得複雜。不必擔心!透過理解用戶資料的流動,你可以建立一個無縫且安全的認證體驗。
認證資料與用戶資料
並非所有用戶資料都是平等創建的。認證資料是令牌發行過程中交換的特定子集。想像一下你的 HTTP 請求中的 JWT (JSON Web Token)。一個大的 JWT 會拖慢速度。為了保持快速和安全,我們只包含必要的用戶資訊,如身份、帳戶狀態、認證細節、許可權和基本用戶資料。
在 Logto,我們專注於存儲以下認證資料點:
- 帳戶狀態:追踪創建時間、更新、暫停狀態和登錄歷史。包含
create_at
,updated_at
,account_suspended
,last_ip
。 - 認證資訊:這包括用戶識別碼、認證因素和驗證相關資料。包含
user_id
,password_digest
,password_algorithm
,username
,email
,email_verified
,phone
,phone_verified
,social_identities
,sso_identities
,mfa_config
,mfa_verification_factors
。 - 授權資訊:管理角色、許可權、組織成員資格以及授權的應用和設備以進行細粒度訪問控制。包含
role
,permission
,organization_id
,organization_role
,organization_permission
,grant_application
,grant_device
。 - 標準用戶資料: 這是 OIDC 註冊的最常見用戶資料。Logto 也設置其為默認用戶元資料,存儲在命名空間 'profile.' 下。包含
first_name
,last_name
,middle_name
,name
,nickname
,profile
,website
,avatar
,gender
,birthdate
,zoneinfo
,locale
,address
。
超越基礎:使用 Logto 自定義用戶資料
- Logto 超越了標準資料。我們的管理 API 讓你可以定義特定於業務需求的自定義數據。這些數據安全地存儲在專用命名空間 'custom.data' 下。這裡有一些例子:
occupation
,company_name
,company_size
。
跳出框架思考:客製化 JWT 的外部 API 資料
- 某些業務數據可能不需要永久存儲在 Logto 中。客製化 JWT 的美之處在於你可以在令牌發行過程中透過 API 調用動態獲取這些數據,擴展用戶數據的範圍。記住,安全是最重要的,因此避免在 JWT 中包含敏感信息,因為它們容易被解析。這裡有一些例子:
subscribed_status
,last_path_visited
,app_theme
。
用戶數據之旅:獲取與分發
用戶數據來自多個來源:
- **用戶輸入:**在註冊、上手或應用中的資料更新時進行。
- 身份提供者 (IdPs): 在社交登錄或企業 SSO 過程中無縫同步。
- 資料遷移: 將數據從現有資料庫中遷移。
- 管理干預: 通過控制台或資料庫手動編輯。
一旦擁有這些寶貴數據,你可以安全地分享它們:
- **向第三方應用授予許可權:**為授權應用提供受控的用戶數據訪問權限。
- 數據導出: 從 Logto 中導出用戶數據以進行進一步分析。
- 通過 JWT、Webhooks 或 API 傳遞: 與你的內部服務共享用戶數據以提供統一的用戶體驗。
作為身份中心,Logto 擅長促進用戶數據的流動。我們使得從多個提供者獲取用戶信息並安全地交付給授權方變得容易。
關鍵點
現在你了解了用戶數據之旅,讓我們探討一些關鍵設計考慮:
- 屬性映射 確保來自不同來源的用戶屬性映射準確以避免數據孤島。對於 SAML 連接,需進行手動映射。當使用 OIDC 時,利用標準聲明或創建唯一的命名空間以防止衝突。
- IdP 和 RP 的資料同步 IdPs (身份提供者) 和 RPs (依賴方) 之間的資料同步通常涉及雙方的授權和特定範圍請求。注意驗證狀態。從像 GitHub 或 Azure AD 這樣的 IdP 同步的 “Email verified=false” 可能不是你系統中的已驗證郵件。對其進行合適的處理。
- 多實體結構中的資料隔離和覆蓋
在擁有多個組織、應用和提供者的複雜環境中,資料隔離和覆蓋行為變得至關重要。
- 多組織: 用 戶可以屬於多個組織。將存儲在用戶帳戶下的用戶數據與組織特定數據區分開。單個組織中的變更不應影響其他組織。
- 多應用: 對於通過 Logto 共享用戶資料庫的應用,在你的服務中實施一個集中化的帳戶設置或資料設置模組。
- 多提供者: 擁有各種登錄方法的應用會從每個提供者接收到不同的用戶信息。在 Logto 中,選擇在社交登錄註冊期間或企業 SSO 的每次登錄中同步數據。社交登錄適合前期數據同步,而企業 SSO 可以在每次登錄時同步成員信息,以便於在企業 IdP 中管理。
- 擴展數據訪問的客製化 JWT 客製化 JWT 的力量在於它們可以在令牌發行過程中透過 API 召喚動態檢索外部信息。這讓你可以訪問可能不是核心功能所必需但可以豐富用戶體驗的數據點。記住,擁有更大靈活性帶來更大責任。由於 JWT 可以被接收它們的任何人輕易解析,避免包含敏感數據。
- 漸進式註冊以提供更流暢的上手流程 不要用長達小說的註冊表格讓用戶不知所措。實施漸進式註冊技術,最初僅請求最關鍵的用戶信息。這可以簡化註冊過程並讓用戶保持參與。隨著用戶與你的應用互動,你可以逐漸收集額外的數據以建立更豐富的用戶資料。
通過遵循這些最佳實踐,你可以確保用戶資料在整個認證旅程中的順暢和安全流動。
Logto:用戶資料移動時你的安全中心
有效管理用戶元資料可以讓你個性化用戶體驗,增強安全性,並獲得用戶行為的寶貴 見解。透過利用 Logto 的安全和靈活平台,你可以釋放用戶數據的全部潛力,並在當今以數據為驅動的市場中獲得競爭優勢。