2018-05-02

From Identity Management to Identity Governance

有關認證與授權,各種名詞跟負責的功能常常處於混亂的狀況;比較清楚的多半是偏技術面的通訊協定,其他諸如產品名稱與宣稱功能往往令人迷惑,常見的有:
  • Identity Management (IdM) [1]
  • Identity and Access Management (IAM)
  • Access Management (AM)
  • Identity Governance and Administration (IGA)

首先我們想釐清的重點有兩個:
  • Directory service 與上述各系統之間的關係;
  • 各系統的差異為何?

一般來說,組織或企業在踏入這塊領域之前,通常會預先建置 directory service,就通訊協定標準來說,LDAP 是主流;但由於微軟 Active Directory (AD) 的超高市佔率,AD 儼然成為另一種行業 (de facto) 標準。但即使建置了 directory service,對於企業 IT 而言仍有許多不足的地方:
  • 首先從認證與授權的角度來看,directory service 僅能處理認證;雖然 directory service 除了記錄使用者的帳號 & 密碼外,也提供許多 attributes,甚至是群組關係,但是否讀取這些屬性作為授權依據,傳統上仍由應用系統控制,亦即應用系統可自行決定是否讀取 directory service 上的資訊,並決定授予哪些權限。
  • 其次就帳號是否生效來說,企業內部往往涉及更多人事作業的需求,例如:預約到職或離職、留職停薪、休假等,無法單純地對應成在 directory service 上新增或刪除一個使用者;這裡頭往往需要一些前置作業,例如:資料匯入、流程簽核、發送通知等,才能順利完成。

於是 Identity Management (IdM) 因應而生。IdM 不僅滿足於 directory service 的圖形化操作介面,更包括前面提的資料匯入、流程簽核、發送通知等功能,方便人事在單一系統操作,完成帳號開通或停用,但仍未處理授權議題。

為了解決授權問題,部分廠商提出了 IAM;但受限於應用系統中授權模組設計,IAM 多半只能利用使用者的 attributes,呼叫各應用系統的 API 產生對應的角色,最後由授權模組在實際操作時給予權限。

因此 IAM 的重點在於針對各個應用系統實作相應的 connectors,例如 OneLogin 便具備與 AWS, Atlassian, G Suite, Office 365, Salesforce, Trello 等應用系統串接能力 [2]。這裡頭有關讀取使用者 attributes 到建立應用系統角色的過程,稱為 entitlement provisioning [3];IAM 亦提供圖形介面方便設定規則讓 connectors 定期更新應用系統角色。

前兩者大概處理完認證與授權的問題,最後兩個分別可以視為 IdM 與 IAM 的再進化。

傳統 IdM 因為未擴充通訊協定,只提供 LDAP 認證逐漸無法滿足用戶登入時的便利與安全性需求;在現代的資訊系統中,常見的認證需求主要有:single sign-on (SSO) 與 muti-factor authentication (MFA),甚至是 one-time password (OTP);以 okta 為例,在 SSO 方面就支援了 SAML 2.0 與 OpenID,同時也支援簡訊、Email、手機推播、U2F token、指紋等多種多重認證行為 [4]

如果說 AM 側重於用戶端登入行為,IGA 則側重使用者資訊導入應用系統時的管理。

前面提到 IAM 的重點在於 entitlement provisioning,然而 provisioning 的行為類似 IdM 啟用或停用帳號,也需要資料匯入、流程簽核、發送通知等;亦即並非每一位在 LDAP service 建立帳號的使用者,都具備登入所有系統的權限,各應用系統本身對於部分角色授予,可能也需要相應的簽核流程。

也就是說,IGA 針對各應用系統的 provisioning 提供了差異化管理,同一個使用者可能在某些系統可以直接登入獲得角色,部分系統需要簽核後才有角色,還有一些系統無法登入。

see also:
[1] Wikipedia: Identity Management
[2] OneLogin: App Integration
[3] OneLogin: Provisioning Entitlements
[4] Okta: Adaptive Multi-Factor Authentication