憑據 (Credential):泛指我們在系統存取過程使用可被信賴的元素,
包含我們使用的帳號跟密碼或甚至更多的多因子認證機制等,
繼昨日介紹的身份安全的 AAA (認證、授權、當責性) 基石後,
今日接續介紹使用的基本元素:帳號、密碼、角色與權限。
IT 世界的每個服務、網站與系統,都得在完成認證後才能獲得授權,
而第一時間會使用到的即為每個人會被配置到的帳號與密碼。
但在系統多元面貌的情況下,通常在沒有完整串接整合的情況,
例如在 Windows、Linux、網通系統等各自獨立運行的生態系系而言,
一個真實的人可能會擁有多數個系統帳號組跟密碼。
而 IT 系統背後管理與儲存帳號密碼資訊的基礎設施,
即為目錄服務 (Directory) 乘載各式人員帳號、密碼與相關屬性的存取,
而 LDAP 即是基於 X.500 協定發展的的輕量級目錄協議,
透過 樹枝狀 結構,分層式的保存身份相關資訊。
LDAP 目錄結構元素:
舉例:在 ithome.com 網域內 writers 組織中使用者 mark。
DN: cn=mark,ou=writers,dc=ithome,dc=com
而密碼即為隨附在帳號之下的一個屬性資訊,
同時也會有針對密碼安全的保護的相關要求,
包含複雜度、變更週期、無法使用重複密碼...等相關安全要求。
當無可避免各系統多數時間處於獨立的情況下,
就會導致一位系統管理員本身會擁有多組的帳號密碼,
而每一組帳號密碼所賦予他登入系統後能夠執行的動作,
則會取決該系統指定給這個帳號的角色,以及相應的權限決定。
為了有效的管理 IT 系統,
角色 (Role) 的概念就是預先將系統權限,
根據操作需求、相應權限先行打包的一種描述檔 (Profile),
每次系統有新增帳號進來時,不是為這個帳號「量身打造」它的客製權限,
而是採用「套用」的方式來授予該帳號某個角色的需求,
例如 管理員(admin)、稽核員 (Auditor)、觀察員 (Oberve)...等等,
讓眾多的帳號與權限的管理,可以透過「角色指派」的方式達成。
而牽涉較為具體的角色權限配置,基本上有兩種方式:
: 基於角色的存取控制:Role-based access control,RBAC
: 基於屬性的存取控制:Attribute-based Access Control, ABAC
簡單區分來說,RBAC 就是基於一個帳號需要的操作權限,
相應給予一或多個角色指派,例如同時需要知道客戶資料,但同時也有採購資訊等,
而 ABAC 則是基於 RBAC 的精神,更「細膩話」的控制權限的給予,
因為 RBAC 的權限授予是屬於靜態、一次認證即獲得所有系統資源的存取,
但 ABAC 的「屬性」則可以提供更多關於「環境面」的因素來強化認證授權過程。
例如使用者 IP 位置、電腦 MAC、時間區段、頻率次數等等,
讓身份安全的授權可以更進一步限縮到該次、當前的連線允許與否的細部顆粒度。
身份安全管理是個不容易的事,
原因是雖然本身它很單純、僅是 LDAP 結構元素組成,
但它卻也同時奠基每天系統能順利運作的基石,
也因此對安全與 IT 人員而言,衍伸而出的身份管理議題,
便會圍繞著像是:
: 每個用戶應該有權訪問什麼?
: 誰批准和允許訪問?
: 為什麼員工要記住八個密碼?
: 如何在多個系統實施集中訪問?
: 如何控制員工、客戶和合作夥伴的訪問?
這些都會在穩定的 IT 系統運行之後,
身份管理維運與稽核要求法規會進一步需要面臨的管理議題。