了解即時建立 (Just-in-Time) 帳號
即時建立是一種用於身份和存取管理系統中的流程,用於在用戶首次登入系統時即時建立用戶帳號。這篇文章解釋了即時建立的基本概念,並回答了常見的實施問題。
在討論即時建立 (JIT) 前,想像你正在打造一個SaaS B2B的應用程式,並想要支援會員功能,讓會員可以輕鬆加入你的工作區 (租戶)。你會建議哪些功能?這是一個檢查清單供你參考:
情境 | 流程 |
---|---|
管理員邀請 | 用戶可以收到電子郵件邀請加入組織。 |
管理 API 用戶創建或導入 | 用戶可以使用預先創建的用戶帳號加入組織。 |
即時建立 | 首次登入應用程式的用戶可以加入組織。 |
目錄同步 (例如:SCIM) | 使用身份提供者 (IdP) 的目錄同步功能預先在應用程式中建立用戶。 |
即時建立 (JIT) 是一種用於身份和存取管理系統的流程,用於在用戶首次登入系統時即時建立用戶帳號。與預先為用戶創建帳號不同,JIT 建立和配置用戶帳號是動態的,當用戶進行身份驗證時即會執行。 即時建立是一個受歡迎的功能,具有其自身的特點,如效率高、無需管理干預、自動組織成員資格等。 現在你了解了即時建立的基本概念,當深入進入真實世界的產品開發時,你可能會有一些問題。我將解答這些問題,這些問題可能會引起爭議並高度依賴於你的具體業務情況。
你的產品是否需要實施即時建立?
當構建涉及多租戶架構、企業單一登入 (SSO)、與大型企業合作或需要團隊上線功能的 B2B 應用程式時,這些情況是常見的。以下是你的客戶可能遇到的一些範例情景。
快速上線
你的客戶正在經歷頻繁的招聘或快速增長,可以使用 JIT 建立快速為新員工設立用戶帳號。讓我們舉個例子:
Sarah 是 SuperFantasy
公司的新員工,該公司使用 Okta
作為企業身份提供者。人力資源團隊只需在 Okta 中將她添加為業務身份 [email protected]
。當 Sarah 第一次使用此電子郵件登入名為 Smartworkspace
的公司生產力應用程式時,系統自動創建一個帳號並為她在公司的工作區中指派正確的角色。這樣,Sarah 和 SuperFantasy 的人力資源團隊都不需要經過多個步驟來創建帳號和指派角色。
合併、收購和臨時工
你的客戶正在經歷合併或收購他人,JIT 建立可以簡化授予收購公司系統存取權的流程。讓我們舉另一個例子:
Peter 在最近被 SuperFantasy
收購的 MagicTech
工作。MagicTech 是一個較小的組織,沒有企業 SSO,但他也在使用 Smartworkspace
,並且已經擁有商務帳號。
人力資源團隊可以將 Peter 添加到 Okta
中。當 Peter 第一次通過 Okta 登錄 Smartworkspace 時,系統會自動連接他現有的商務帳號並授予合適的 SuperFantasy 存取權。
以上情景是實施 JIT 功能的理想情境。
它是否特定於 SAML 和企業 SSO?
即時建立 (JIT) 經常與 SAML 驗證中的單一登入 (SSO) 關聯,但它並不僅限於 SAML。JIT 也可以與其他驗證協議一起使用,如 OAuth 2.0 和 OpenID Connect,並不總是需要企業 SSO 的設置 。
例如,基於電子郵件的 JIT 可以透過自動將用戶添加到工作區的電子郵件域來簡化團隊入職。這對於缺乏購買和管理企業 SSO 的預算和資源的組織特別有用。
JIT 建立的基本思想是在用戶第一次嘗試訪問服務時自動創建或更新用戶帳號,無論使用的是哪種具體協議。
它適用於新用戶還是應用程式的現有用戶?
這是一個棘手的問題。即時建立 (JIT) 一般指的是首次嘗試訪問應用程式。然而,不同的產品對此功能的看法不同。有些僅將 JIT 用於身份和帳號創建,而其他的則包含即時帳號更新,如重新建立和屬性同步。
除了自動用戶創建外,SAML JIT 建立還允許在建立過程中授予和撤銷組成員資格。它還可以更新已建立的用戶,以保持其在服務提供者 (SP) 存儲中的屬性與身份提供者 (IDP) 用戶存儲屬性同步。
例如,在 Oracle Cloud 中,可以通過各種方式配置即時建立。
- 即時創建
- 即時更新
當登入時,該用戶: | 流程 |
---|---|
已存在,並啟用了 JIT 建立。 | 正常 SSO 失敗流程。 |
不存在,並啟用了 JIT 創建。 | 創建用戶,並用 JIT 配置中映射的 SAML 斷言屬性填充。 |
已存在,並啟用了 JIT 更新。 | 用戶屬性值會用 JIT 配置中映射的 SAML 斷言屬性更新。 |
如果你想考慮隨後現有用戶的登入情況, 請確保你的 JIT 系統具有強大的建立系統。例如:
- 衝突解決:如果在 JIT 過程中 IdP 提供的信息與現有帳號有不同信息,系統應該有策略來處理這種情況。這可能需要詳細控制組織的政策和 IdP 配置信息。
- 審閱追踪:為安全和合規原因,維護 JIT 過程中新帳號創建和現有帳號更新的日誌很重要。
- 效能:儘管 JIT 建立速度很快,但要考慮對登入時間的潛在影響,特別是在現有用戶如果你在每次登入時更新其信息時。
- 資料一致性:確保你的 JIT 建立過程維持資料一致性,尤其是當更新現有用戶帳號時。
JIT 和 SCIM 有什麼區別?
除了即時建立 (JIT) 外,你可能還聽說過 SCIM (跨域身份管理系統)。SCIM 是一個開放標準協定,旨在簡化和自動化用戶身份管理在不同系統和域之間的過程。它通常用於目錄同步場景。
JIT 和 SCIM 的主要區別在於 JIT 在用戶嘗試登入時創建帳號,而 SCIM 可以通過離線自動化過程來建立用戶,與用戶登入不相關。
這意味著 JIT 著重於新用戶入職,而 SCIM 著重於用戶的完整生命週期 管理。
此外,JIT 通常是 SAML 的擴展,且缺乏一個跨系統的標準實施,而 SCIM 是一個為身份管理設定良好的標準協定(RFC 7644)。
一些較大組織使用 SCIM 進行帳號建立,並將其與他們自己的系統整合。這可能非常複雜,並因案而異。這些組織通常擁有一個涉及自動化程序和手動管理員介入的建立系統。
Logto 中的即時建立
我們在 Logto 中採用的即時建立功能包括 SSO 即時建立 和 電子郵件域即時建立。
在 Logto 中,我們在組織層級設置此功能,以允許用戶自動加入組織並根據特定標準獲得角色分佈。
我們將 JIT 功能實現到最具可擴展性和安全性的層面,以簡化和自動化開發人員客戶入職的過程。但是,正如我們之前所討論的,由於建立系統可能很複雜並根據客戶的具體需求進行定制,你應該利用 Logto 的預建 JIT 功能、你仔細的系統設計和 Logto 管理 API 來構建一個穩健的建立系統。
讓我們來看看在 Logto 中它如何工作的圖示,
企業 SSO 建立
如果你在 Logto 中設置了企業 SSO,你可以選擇你的組織企業 SSO 來啟用即時建立。
新的或現有的用戶透過企業 SSO 首次 登入後將自動加入組織並獲得默認組織角色。
以下表格列出了可能的流程:
用戶狀態 | 流程描述 |
---|---|
用戶不存在且啟用了 JIT。 | 創建用戶並自動加入相應的組織,並分配適當的角色。 |
用戶存在並且驗證過的電子郵件地址與企業 SSO 相同且啟用了 JIT。 | 用戶的電子郵件地址自動連接到企業 SSO 帳戶,並加入相應的組織並分配適當角色。 |
用戶不存在且未啟用 JIT。 | 正常 SSO 失敗流程。 |
用戶存在且未啟用 JIT。 | 正常 SSO 流程。 |
電子郵件域建立
如果某個組織沒有專用的企業 SSO,你可以使用電子郵件域來啟用即時建立。這通常發生在預算有限的小型 企業,他們想要某種程度的會員入職自動化和安全管理。
當用戶註冊時,如果其驗證過的電子郵件地址匹配組織層級配置的電子郵件域,他們將被建立到適合的組織中,並獲得相應的角色。
電子郵件域建立工作於:
- 電子郵件註冊驗證
- 社交註冊驗證
電子郵件流程
用戶狀態 | 流程描述 |
---|---|
用戶不存在並用電子郵件註冊且啟用了 JIT。 | 創建用戶並自動加入相應的組織,並分配適當角色。 |
用戶存在其驗證的電子郵件地址與建立的電子郵件域相同且啟用了 JIT。 | 正常電子郵件登入流程。 |
用戶不存在並用電子郵件註冊且未啟用 JIT。 | 正常電子郵件註冊流程。 |
用戶存在並用電子郵件登入且未啟用 JIT。 | 正常電子郵件登入流程。 |
社交流程
用戶狀態 | 流程描述 |
---|---|
用戶不存在,使用驗證過的電子郵件註冊社交帳號且啟用 JIT。 | 創建用戶並自動加入相應的組織,並分配適當角色。 |
用戶不存在,使用未驗證的電子郵件或無電子郵件註冊社交帳號且啟用 JIT。 | 正常社交註冊流程。 |
用戶已存在且驗證過的電子郵件地址與建立的電子郵件域匹配,通過社交帳號登入且啟用 JIT。 | 正常社交登入流程。 |
用戶不存在並使用社交帳號註冊且未啟用 JIT。 | 正常社交註冊流程。 |
用戶已存在並使用社交賬號登入且未啟用 JIT。 | 正常社交登入流程。 |
處理電子郵件域建立和企業 SSO 潛在衝突
如果你最初設置了電子郵件域建立,然後配置了相同電子郵件域的企業 SSO,會發生以下情況:
當用戶輸入其電子郵件地址時,他們將會被重定向到 SSO 流程,跳過電子郵件驗證。這意味著 JIT 過程 不會被觸發。
為了解決這個問題,我們將在配置時顯示一條警告消息。請確保透過選擇正確的 SSO 來啟用即時建立,而不依賴於電子郵件域建立。
默認組織角色
在建立用戶時,你可以設置他們的默認組織角色。角色列表來自組織模板,你可以選擇一個角色或留空。
企業 SSO 即時更新
幸運的是,我們已經在企業 SSO 中內置了這個功能!你可以選擇是否在第一次登入或每次登入時將個人資料信息同步到 Logto。我們還會考慮在未來添加更多功能,如角色分配和重新建立等。
查看 這裏 了解更多。
即時建立功能在 Logto 中已經可以立即使用。立即註冊 Logto,開始自動化你的客戶會員入職流程。