วันพุธที่ 30 มีนาคม พ.ศ. 2565

Azure AD Password Protection

      สวัสดีครับทุกท่าน สำหรับบทความนี้ผมจะพาทุกท่านไปรู้จักกับฟีเจอร์หนึ่งใน Azure Active Directory (Azure AD) ที่มีชื่อว่า "Azure AD Password Protection"  ครับ โดยฟีเจอร์ดังกล่าวนี้ถือว่าเป็นอีกฟีเจอร์หนึ่งที่สำคัญสำหรับการป้องกันหรือ Protect Identity หรือ User Account ในองค์กรครับ และท่านผู้อ่านท่านใดที่ติดตามบทความของผมเป็นประจำ จะสังเกตว่าผมมักจะนำเอารูปด้านล่างนี้มาใช้เป็นประจำ











เพราะรูปดังกล่าวนี้ เป็นรูปที่เกี่ยวข้องกับฟีเจอร์ต่างๆ ของ Azure AD ที่จะช่วยป้องกัน Identity ขององค์กรครับ โดยแต่ละองค์กรสามารถพิจารณาเลือกฟีเจอร์ต่างๆ จากรูปด้านบนเข้ามาประยุกต์ใช้งานในองค์กรเพื่อดำเนินการในเรื่องของ Identity Protection หรือ Identity Security ได้ครับ และบทความหนึ่งของผมก่อนหน้านี้ ผมได้เขียนเพื่อนำเสนอเรื่องราวของฟีเจอร์หนึ่งใน Azure AD ที่เข้ามาช่วย Protect และ Secure Identity ครับ โดยบทความดังกล่าวนั้นผมนำเสนอเรื่องราวของฟีเจอร์ที่ชื่อว่า Azure AD Identity Protection ครับ (ท่านผู้อ่านท่านใดสนใจสามารถย้อนกลับอ่านบทความนี้ได้จาก WT Blog ของผมได้เลยครับ) และผมตั้งใจว่าจะค่อยๆ นำเสนอฟีเจอร์ต่างๆ จากรูปด้านบนผ่านทางบทความของผมครับ 


เอาล่ะครับเรากลับมาที่เรื่องราวของ Azure AD Password Protection กันต่อครับ  โดยผมขอเริ่มจากใน Environment ที่ผมเชื่อว่าทุกท่านน่าจะคุ้นเคยคือ Active Directory Domain Service (AD DS) ซึ่งเราสามารถทำการป้องกัน Identity หรือ User Account ที่อยู่ใน Forest/Domain ของ AD DS ได้โดยการวางแผนและทำการกำหนดเรื่องของ Password Policy โดยสามารถกำหนดผ่านทาง Group Policy ซึ่งเป็นฟีเจอร์หนึ่งของ AD DS โดยไปทำการสร้าง GPO ขึ้นมาและไปกำหนดค่า Settings ที่เกี่ยวข้องกับ Password Policy เช่น


- Minimum Password Length

- Minimum และ Maximum Password Age

- Password must meet Complixity 

- อื่นๆ 


โดยค่า Settings ต่างๆ ที่ผมยกตัวอย่างข้างต้นนั้น ถือว่าเป็นการป้องกัน User Accounts ใน Forest/Domain ได้ในระดับหนึ่งเท่านั้น ซึ่งแน่นอนว่ามันยังมีความเสี่ยงต่อความไม่ปลอดภัยกับ Identity หรือ User Account เพราะการกำหนด Password Policy ที่อธิบายในข้างต้น มันยังไม่เพียงพอต่อการป้องกัน Identity หรือ User Account ครับ เพราะผู้ดูแลระบบ (Administrator) รวมถึงผู้ใช้งาน (Users) อาจจะทำการกำหนด Password ที่ง่ายต่อการเดาหรือเป็น Password ที่เป็นที่นิยมใช้กัน เช่น Passw0rd, Pa$$word, Hello01, และอื่นๆ เป็นต้น เพราะฉะนั้นถึงแม้ว่าใน Environment ดังกล่าว, ผู้ดูแลระบบ (Administrator) รวมถึงผู้ใช้งาน (Users) จะทำการกำหนด Password ให้เป็นไปตาม Password Policy ที่บังคับใช้อยู่แล้วก็ตาม 


แต่ Password ที่กำหนดเหล่านั้นอาจเป็นจุดอ่อนหรือช่องโหว่ที่ทำให้ Attacker/Hacker สามารถเข้ามาใน Environment ดังกล่าวได้ โดยใช้เทคนิคที่เรียกว่า Brute Force Attack ครับ และเมื่อได้ Password ของผู้ใช้งานไปแล้ว  Attacker/Hacker ก็จะใช้ Credential (User และ Password) ดังกล่าวเข้าถึงข้อมูลตลอดจน Resources ต่างๆ ขององค์กรครับ และจากประเด็นดังกล่าวนี้ เราจะทำการป้องกัน Identity หรือ User Accounts โดยเฉพาะประเด็นเรื่องของ Weak Password หรือ Well-Known Password ได้อย่างไร?  


เพราะฉะนั้นเบื้องต้นเราควรหลีกเลี่ยงการตั้งหรือการกำหนด Password ไม่ให้เข้าข่ายเป็น Weak Password ครับ โดยทาง Microsoft มี Password Guidance (Microsoft Password Guidance) มาช่วยแนะนำเราครับ รายละเอียดเพิ่มเติมท่านผู้อ่านสามารถดาวน์โหลดได้จาก Link นี้ครับ https://www.microsoft.com/en-us/research/publication/password-guidance/







Azure AD Password Protection คืออะไร ?

อย่างที่ผมได้เกริ่นไว้ข้างต้นของบทความว่า Azure AD Password Protection เป็นฟีเจอร์หนึ่งของ Azure AD ครับ โดยฟีเจอร์ดังกล่าวจะเข้ามาช่วยจัดการและป้องกัน Identity หรือUser Account ขององค์กรครับ โดย Azure AD Password Protection จะเข้ามาทำหน้าที่ในการค้นหา (Detect) และทำการ Block พวก Weak Passwords หรือ Well-Known Passwords ครับ เพื่อไม่ให้ผู้ใช้งานตลอดจนผู้ดูแลระบบกำหนด Password ที่เข้าข่ายดังกล่าวนี้ครับ ส่งผลทำให้การเดา Password ก็ทำได้ยากขึ้นครับ

สำหรับ Azure AD Password Protection นั้นมีค่าใช้จ่ายนะครับ โดยท่านผู้อ่านจะต้องทำการพิจารณาก่อนแล้วทำการซื้อ License ครับ โดยมีรายละเอียดดังนี้ครับ








เพราะฉะนั้นถ้าในกรณีที่องค์กรหรือออฟฟิศของท่านผู้อ่านมีลักษณะเป็น Hybrid Cloud (Hybrid Identity) คือ มีการ Sync Users จาก AD DS มายัง Azure AD และต้องการใช้ Azure AD Password Protection สำหรับ License ที่เหมาะสมหรือใช้งาน ก็จะเป็น Azure AD Premium P1 หรือ P2 ครับ

ลำดับถัดมา ผมขอนำเสนอ Azure AD Password Protection Diagram ดังรูปด้านล่างครับ









สำหรับ Diagram ข้างต้นจะแสดงให้เห็นถึง Components ที่สำคัญและเกี่ยวข้องการใช้งาน Azure AD Password Protection กับ On-Premise AD DS ครับ โดยผมขออธิบายคร่าวๆ ดังนี้ครับ

1. ผู้ใช้งานทำกำหนดหรือเปลี่ยน Password ซึ่งจะต้องมีการติดต่อไปยัง Domain Controllers
2. DC Agent password filter dll จะรับเรื่องการเปลี่ยนหรือการกำหนด Password ของผู้ใช้งานดังกล่าวแล้วทำการส่งต่อไปยัง Azure AD Psssword Protection DC Agent (ซึ่งติดตั้งอยู่ที่ Domain Controllers) โดย Agent ดังกล่าวจะทำการตรวจสอบเบื้องต้นก่อนว่า การกำหนดหรือเปลี่ยน Password ดังกล่าวนี้เป็นไปตาม Azure Password Policy หรือไม่
3. ในทุกๆ 1 ชั่วโมง Agent ที่ติดตั้งอยู่ใน Domain Controllers ทำการติดต่อกับ Azure AD Password Protection Proxy Service เพื่อทำการดาวน์โหลด Azure Password Policy เวอร์ชั่นล่าสุด
4. จากนั้น Agent ที่ติดตั้งอยู่ใน Domain Controllers รับ Azure Password Policy เวอร์ชั่นล่าสุดแล้วเก็บไว้ใน Sysvol และทำการ Replicate Policy ดังกล่าวไปยัง Domain Controllers ทุกตัวที่อยู่ใน Forest และ Domain นั้น


สำหรับรูปต่อมา จะเป็นรูปของการ Enable Azure AD Password Protection ครับ






ในตัวของ Azure AD Password Protection ยังมีสิ่งที่เรียกว่า Banned Password List ซึ่งเป็น List ของ Passwords ที่ไม่ควรกำหนดครับ ซึ่ง List ดังกล่าวนี้จะมีการอัพเดทเป็นระยะๆ ครับ และตัวของ Azure AD Password Protection จะใช้ List ดังกล่าวนี้ในการตรวจสอบการกำหนด Password ครับ นอกจากนี้เรายังสามารถเพิ่มหรือทำการ Custom Banned Password List โดยการใส่ Weak Passwords ของเราเข้าไปได้ด้วยครับ ดังรูปด้านล่าง






รายละเอียดเพิ่มเติมสำหรับเรื่องราวของ Azure AD Password Protection สามารถติดตามได้จาก Link นี้ครับ https://docs.microsoft.com/en-us/azure/active-directory/authentication/concept-password-ban-bad-on-premises

และทั้งหมดนี้คือเรื่องราวของฟีเจอร์หนึ่ง (Azure AD Password Protection) ใน Azure AD ที่จะเข้ามช่วยปกป้อง Identity หรือ User Account ในองค์กรครับผม.....












วันศุกร์ที่ 25 มีนาคม พ.ศ. 2565

รู้จักกับ Azure Active Directory Identity Protection

      สวัสดีครับทุกท่าน สำหรับบทความตอนนี้ของผมจะเป็นเรื่องราวที่เกี่ยวข้องกับ Security ครับ โดยบทความนี้ผมจะหยิบเอาเรื่องของการป้องกัน Identity (User Accounts) ให้มีความปลอดภัยมากขึ้นครับ

สิ่งผมอยากจะอธิบายให้ทุกท่านได้ทราบเบื้องต้นก่อน นั่นก็เรื่องราวต่างๆ ของ Security นั้นมีรายละเอียดเยอะมากครับ ซึ่งทาง Microsoft ก็ได้เตรียมเครื่องไม้เครื่องมือตลอดจน Services ต่างๆ เข้ามาช่วยทำให้ Environment ขององค์กร ไม่ว่าจะมีลักษณะเป็น Hybrid หรือ Multi-Cloud Environment ก็ตามให้มีความปลอดภัยมากขึ้นครับ นอกจากนี้แล้ว Microsoft ยังเตรียม Models ต่างๆ ซึ่งท่านสามารถนำไปเป็น Reference เพื่อนำไปประยุกต์ใช้งานในองค์กรได้ครับ เช่น Shared Resonsibility Model, Defense-In-Depth Model, Zero Trust Model, เป็นต้น


ขออนุญาตกลับมายัง สิ่งที่ผมโฟกัสสำหรับบทความนี้ นั่นก็คือ การป้องกัน Identity (Identity Protection) เหตุผลที่ผมหยิบเอาเรื่องดังกล่าวนี้มานำเสนอ ก็ด้วยเหตุผลที่ว่า Identity ถือว่าเป็นเป้าหมายอันดับต้นๆ ของ Attackers/Hackers ที่ต้องการจะแทรกตัวเข้ามาใน Environment ที่เป็นเป้าหมายของเค้าครับ ประกอบกับ Environment ณ ปัจจุบันขององค์กรส่วนใหญ่จะมีลักษณะเป็น Hybrid Cloud ส่งผลทำให้ผู้ใช้งานในองค์กรนั้นๆ สามารถเข้าถึง Applications และ Data ต่างๆ ที่อยู่ที่ไหนก็ได้ไม่ว่าจะอยู่ใน On-Premise หรือ Cloud ครับ แน่นอนว่าในมุมของผู้ใช้งาน ประเด็นดังกล่าวนี้ส่งผลดีต่อผู้ใช้งาน เพราะทำให้เกิดความสะดวกในการใช้งาน แต่ในมุมของ IT หรือ Security Teams ตลอดจนท่านที่มีบทบาทหน้าที่ที่เข้าไปเกี่ยวข้องกับเรื่องของ Security ของ Environment ดังกล่าว จากประเด็นเดียวกัน มันก่อให้เกิด Challenge ที่ IT หรือ Security Teams จะบริหารจัดการและป้องกัน Identity ของผู้ใช้งานอย่างไร และอย่างที่ผมได้เกริ่นไว้ข้างต้นของบทความว่า ทาง Microsoft ได้เตรียมหลายสิ่งหลายอย่างเอาไว้จัดการกับ Challenge ที่ว่านี้ครับ เช่น Azure MFA, Azure AD Condition Access, Passwordless, และอื่นๆ

 

ผมขอยกตัวอย่างของ Features, Tools, และ Services ต่างๆ ที่จะเข้ามาช่วยปกป้อง Identity ซึ่งทาง Microsoft ได้เตรียมไว้สำหรับให้องค์กรได้ทำการวางแผนและพิจารณาเพื่อนำไปประยุกต์ใช้งาน ดังรูปด้านล่าง โดยรูปดังกล่าวนี้ผมวาดขึ้นมาเพื่อใช้ในการอธิบายและ Discuss กับลูกค้าที่สนใจเรื่องของการปกป้อง Identity ครับ





-






สำหรับบทความนี้ ผมจะนำเสนอเรื่องราวของ Feature หนึ่ง (อ้างอิงจากรูปด้านบน) ใน Azure Active Directory (Azure AD) ที่มีชื่อว่า "Azure Active Directory Identity Protection" หรือ Azure AD Identity Protection โดย Feature ดังกล่าวนี้ไม่มีใน Azure AD Free Edition นะครับ จะมีอยู่ใน Azure AD Premium P2 Edition ครับ หรือดูรายละเอียดจากรูปด้านล่างและ Link นี้ครับ, https://www.microsoft.com/security/business/identity-access-management/azure-ad-pricing




Azure Active Directory Identity Protection คืออะไร?


Azure Active Directory Identity Protection หรือ Azure AD Identity Protection เป็น Feature ที่จะเข้ามาช่วยป้องกัน Identity หรือ Users ใน Environment ขององค์กรครับ โดย Azure AD Identity Protection จะทำการตรวจสอบดูว่าใน Environment ขององค์กรนั้นๆ มีเหตุการณ์ผิดปรกติหรือเหตุการณ์ที่น่าสงสัย ซึ่งมีความสุ่มเสี่ยงกับ Identity หรือ Users หรือไม่ สำหรับเหตุการณ์ผิดปรกติหรือเหตุการณ์ที่น่าสงสัย ซึ่งมีความสุ่มเสี่ยงกับ Identity ที่ผมเกริ่นไว้เมื่อซักครู่นั้น ยกตัวอย่างเช่น มีการ Sign-In จากผู้ใช้งานหรือ User จาก Location แปลก ซึ่งผู้ใช้งานท่านดังกล่าวไม่เคยเดินทางไปที่นั่น, ผู้ใช้งานเชื่อมต่อเข้ามาใน Environment นั้นๆ ด้วย IP Addresses แปลกๆ หรือน่าสงสัย, หรือเกิด Password Spray Attacks, และอื่นๆ ครับ 


จากตัวอย่างเหล่านี้ ต้องบอกว่าโดยปรกติ เราไม่สามารถรู้ได้เลยครับ เพราะไม่มีเครื่องมือใดๆ ที่จะเข้ามาทำการตรวจสอบครับ แล้วท่านผู้อ่านตลอดจนองค์กรจะรับมือและจัดการกับภัยคุกคามหรือตัวอย่างที่ผมได้อธิบายไว้ข้างต้นอย่างไร? คำตอบ คือ สามารถจัดการได้ครับ โดยท่านผู้อ่านหรือองค์กรสามารถพิจารณานำเอา Azure AD Identity Protection เข้ามาช่วยครับ โดยตัวของ Azure AD Identity Protection ใช้ Threat Intelligence ซึ่งทาง Microsoft ได้ทำการรวบรวมข้อมูลต่างๆ จาก Microsoft เอง และจากลูกค้าของ Microsoft ทั่งโลก ในการดำเนินการครับ โดยจะมีหน้าที่หลักๆ ดังนี้:


- Automate Detection & Remediation (เกี่ยวข้องกับเหตุการณ์ผิดปรกติหรือที่น่าสงสัย ซึ่งมีความสุ่มเสี่ยง    กับ Identity หรือ Users ดังรูปด้านล่าง) 











- Investigate Risks (เกี่ยวข้องกับ Identity) โดย Azure AD Identity Protection จะมี Reports หรือ รายงาน เช่น Risky Users, Risky Sign-In, เป็นต้น





















- Protect Users (Based-On Risks) เช่น บังคับ (Force) ให้ใช้ MFA, ให้ทำการเปลี่ยน Password, เป็นต้น


ใน Azure AD Identity Protection มี Detection ทั้งหมด 2 แบบ โดยท่านผู้อ่านสามารถเข้าไปทำการ Enable และกำหนดค่า Settings ต่างๆ หรือเราจะเรียกว่า Policy ให้กับ Dectection ทั้ง 2 แบบครับ 











1. Sign-In Risk, จะเป็น Detection ที่ Azure AD Identity Protection ทำการค้นหาตรวจสอบว่ามีเหตุการณ์ผิดปรกติหรือที่น่าสงสัยเกี่ยวกับการ Sign-In ของผู้ใช้งานหรือไม่ เช่น มีคนที่พยายามทำการเดา Password ของผู้ใช้งานในองค์กร, มีการ Attack เข้ามาโดยใช้เทคนิคที่เรียกว่า Password Spray, และอื่นๆ 

2. User Risk, จะเป็น Dectection ที่ Azure AD Identity Protection ทำการค้นหาตรวจสอบว่ามีเหตุการณ์ผิดปรกติหรือที่น่าสงสัยเกี่ยวกับ Leaked Credential (Identity หรือ User Account ถูก Compromised หรือถูกขโมย)

รายละเอียดเพิ่มเติมเกี่ยวกับ Azure AD Identity Protection สามารถไปที่ Link นี้ได้เลยครับ, Azure AD Identity Protection documentation | Microsoft Docs








และทั้งหมดนี้คือเรื่องราวภาพรวมและคอนเซปของ Feature ที่ชื่อว่า Azure Active Directory Identity Protection ที่ผมนำมาฝากครับผม.....













 

วันจันทร์ที่ 21 มีนาคม พ.ศ. 2565

Access Control (RBAC) ใน Microsoft Azure

      สวัสดีครับทุกท่าน กลับมาพบกันเหมือนเดิมครับ สำหรับบทความตอนนี้ของผมจะเป็นเรื่องราวของ Security ใน Microsoft Azure ครับ ซึ่งต้องบอกว่ามีรายละเอียดเยอะมากเลยครับ แต่สำหรับบทความนี้ผมจะหยิบเอาเรื่องหนึ่งมานำเสนอเล่าสู่กันฟังครับ และต้องบอกว่าเรื่องดังกล่าวนี้ถือเป็นพื้นฐานสำคัญสำหรับท่านผู้อ่านที่ทำหน้าที่เป็นผู้ดูแลระบบ (Cloud Admintrator), Cloud  Architect, Consultant ตลอดจนท่านที่สนใจเรื่องราวของความปลอดภัยใน Microsoft Azure ครับ เรื่องดังกล่าวนี้ คือ "Access Control" ใน Microsoft Azure ครับ


Access Control คืออะไร?

ผมเชื่อว่าท่านผู้อ่านโดยส่วนใหญ่น่าจะเคยได้ยินตลอดจนรู้จักกับ Access Control กันมาอยู่แล้วครับ เช่น ใน Active Directory Domain Service (AD DS) เรื่องของ Access Control คือ การกำหนดสิทธิ์ (Privileges หรือ Permissions) ในการเข้าถึงตลอดจนการใช้งาน Resources ต่างๆ ใน Forest/Domain ของ Actvie Directory Domain Service (AD DS) ครับ โดยใน AD DS จะมีรูปแบบการกำหนดสิทธิ์หรือ Access Control ได้ 2 แบบ คือ


- Shared Permissions

- NTFS Permisssions


โดยมีผู้ดูแลระบบหรือท่านที่เกี่ยวข้องเป็นผู้พิจารณาและกำหนดสิทธิ์ต่างๆ ให้กับผู้ใช้งานในองค์กรครับ สำหรับเรื่องราวของ Access Control นั้นจะเกี่ยวกับกระบวนการหนึ่งที่เรียกว่า "Authorization" ซึ่งจะเป็นกระบวนที่เกิดหลังจากกระบวนการแรกที่เรียกว่า "Authentication" ครับ และท่านผู้อ่านท่านใดที่ศึกษาเกี่ยวกับเรื่องราวของ Security น่าจะคุ้นเคยกับคอนเซปที่เรียกว่า "AAA" ผมเรียกว่า Triple A หรือ A สามตัวครับ โดย A แต่ละตัวย่อมาจาก


A ตัวที่ 1 = Authentication, เป็นกระบวนเกี่ยวกับการพิสูจน์ตัวตน (Identity) ตัวอย่างของ Services ที่ทำหน้าที่ดังกล่าว เช่น Active Directory Domain Service (AD DS),  Azure Active Directory (Azure AD), เป็นต้น

A ตัวที่ 2 = Authorization, เป็นกระบวนเกี่ยวกับกำหนดสิทธิ์ (Privileges หรือ Permissions) ในการเข้าถึง Resources ต่างๆ ตัวอย่าง เช่น ถ้าใน AD DS ก็จะเป็น Shared และ NTFS Permissions ที่ได้อธิบายไว้ข้างต้น, ถ้าเป็น Azure AD ก็จะเป็น Role-Based Access Control หรือ RBAC ซึ่งเป็น Feature หนึ่งใน  Azure AD ครับ

A ตัวที่ 3 = Accounting หรือ Auditing, เป็นการกระบวนการบันทึกเหตุการณ์ต่างๆ ที่เกิดขึ้น โดยเหตุการณ์ดังกล่าวนี้ ก็จะเป็นข้อมูลที่เก็บอยู่ใน Logs ต่างๆ เช่น Security Log, Activity Log, เป็นต้น

สำหรับบทความนี้ผมจะโฟกัสที่ A ตัวที่ 2 คือ Authorization หรือ Access Control ที่เกี่ยวข้องกับ Microsoft Azure เพราะฉะนั้นก็จะเกี่ยวข้องกับ Feature หนึ่งใน Azure AD คือ Role-Based Access Control (RBAC) ครับ 


ส่วนประกอบของ Role-Based Access Control (RBAC)

อย่างที่ผมได้อธิบายคร่าวๆ ไว้ข้างต้นว่า RBAC เป็น Feature หนึ่งใน Azure Active Directory (Azure AD) ที่ใช้สำหรับการทำ Access Control นั่นก็คือ การกำหนดหรือ Assign สิทธิ์ (Privileges หรือ Permissions) หรือระดับการเข้าถึงเพื่อใช้ในการบริหารจัดการและใช้งาน Resources ต่างๆ ใน Microsoft Azure ครับ เพราะฉะนั้นท่านผู้อ่านท่านใดที่เป็นผู้ดูแลระบบท่านจะต้องรู้จักและเข้าใจคอนเซปตลอดจนเรื่องราวต่างๆ ของ  RBAC ครับ  โดยตัวของ RBAC ประกอบไปด้วยส่วนประกอบต่างๆ ดังนี้:


- Security Principals (SPs)

- Role Definitions

- Role Assignment


Security Principals (SPs)

คือ สิ่งที่อธิบายหรืออ้างอิงถึง Azure AD Objects ที่เราสามารถกำหนดหรือ Assign สิทธิ์ ได้ครับ ผมอยากให้ท่านผู้อ่านลองนึกดูครับว่า มันคือ  Azure AD Objects ? ครับ..... คำตอบ คือ  User Accounts, Group Accounts, เป็นต้นครับ  Security Principals (SPs) มีอะไรบ้าง สามารถดูจากรูปด้านล่างครับ








Security Principals (User Account)

เรามาเริ่มกันที่ User Accounts เป็น Object ที่ใช้แทนหรือสำหรับผู้ใช้งาน และผมเชื่อว่าทุกท่านน่าจะรู้จักและคุ้นเคยกับ User Accounts เป็นอย่างดี เพราะทุกคนต้องมีเพื่อใช้เป็น Identity สำหรับเข้าถึงหรือใช้งาน Resources ต่างๆ  โดย User Accounts ใน Azure AD จะมี 3 ชนิด คือ


1. Cloud User Accounts

2. Hybrid User Accounts

3. External User Accounts


Security Principals (Group Account)

เราใช้ SPs ชนิดนี้เพื่อช่วยทำให้การทำ  Access Control มีความสะดวกและยืดหยุ่นมากขึ้น และตาม Best Practices ของ Microsoft ควร(Privileges หรือ Permissions) ให้กับ Group Accounts นั่นหมายความว่าใน Azure AD เราควรกำหนดหรือ Assign Group Accounts เข้าไปยัง RBAC Roles ที่เกี่ยวข้องหรือที่ต้องการ


Security Principals (Service Principal)

คือ Identity ของ Applications ต่างๆ ที่เราได้มีการ Deploy ใช้งาน เพื่อทำให้เราสามารถกำหนดหรือ Assign สิทธิ์ (Privileges หรือ Permissions) ให้กับ Applications เพื่อให้ Applications ดังกล่าวเข้าถึง Azure Resources ต่างๆ ได้ครับ การที่ท่านผู้อ่านจะสร้าง Identity ให้กับ Application หรือ Application Identity ได้นั้น ท่านผู้อ่านจะต้องนำเอา Application ดังกล่าวมาทำการ Registered กับ Azure AD โดยใช้ App Registrations ดังรูปด้านล่างครับ










Security Principals (Managed Identity)

เป็น Feature หนึ่งใน Azure AD ที่ทำให้เราสามารถกำหนดสิทธิ์ (Privileges หรือ Permissions)ให้กับ Azure Services เพื่อให้เข้าถึง Azure Resources อื่นๆ ได้ครับ


Role Definitions

ส่วนประกอบต่อมาของ RBAC คือ Role Definitions ครับ โดย Role Definitions คือ ชุดของสิทธิ์ (Privileges หรือ Permissions) ต่างๆ ที่จะใช้กับ Azure Resources ต่างๆ เช่น Read, Write, Delete, เป็นต้น ดังรูปด้านล่างครับ












โดยเราสามารถใช้ Role Definitions ที่ทาง Microsoft Azure เตรียมเอาไว้แล้วผ่านทาง RBAC ที่เรียกว่า "Built-In RBAC Roles" ครับ โดย Built-In ดังกล่าว แบ่งได้เป็น 2 รูปแบบ ดังนี้:

รูปแบบที่ 1 เรียกว่า Azure Active Directory Built-In RBAC ซึ่งเป็น RBAC Roles ต่างๆ ที่เอาไว้ใช้สำหรับการบริหารจัดการ Azure AD Tenant ดังรูปด้านล่าง









รูปแบบที่ 2 เรียกว่า Azure Active Directory Resources Built-In RBAC ซึ่งเป็น RBAC Roles ต่างๆ ที่เอาไว้ใช้สำหรับการบริหารจัดการ Azure AD Resources ต่างๆ ดังรูปด้านล่างครับ









Role Assignment

ส่วนประกอบสุดท้ายของ RBAC คือ Role Assignment คือ ส่วนประกอบที่ใช้สำหรับการกำหนดหรือ Assign สิทธิ์ (Privileges หรือ Permissions) นั่นก็คือการ Assign Security Principals (SPs) เข้าไปยัง RBAC Roles ที่ต้องการ จากนั้นทำการกำหนดขอบเขต (Scope) ตลอดจนระดับ (Levels) ของสิทธิ์ดังกล่าวที่กำหนดผ่านทาง RBAC ว่ามีขอบเขต (Scopes) เป็นอย่างไร โดยขอบเขตที่ว่านี้จะอ้างอิงจาก "Azure Hierarchy" ขององค์กรนั้นๆ ว่าเป็นลักษณะเป็นอย่างไร โดยปรกติจะมี ขอบเขตและระดับต่างๆ ดังรูปด้านล่าง















Scopes และ Levels จากรูปด้านบนที่เราสามารถกำหนดได้ คือ Management Group, Subscription, Resouce Group, และ Resouce ครับ สำหรับ Best Practices ของการทำ Access Control นั้น Microsoft แนะนำให้กำหนดหรือ Assign สิทธิ์ที่ระดับ (Scope และ Level) ของ Azure Hierarchy ที่สูงที่สุดเท่าที่จะเป็นได้หรือตามความต้องการเพราะเมื่อกำหนดสิทธิ์เรียบร้อยแล้ว สิทธิ์ดังกล่าวที่ถูกกำหนดไว้ก็จะถ่ายทอดลงมายังระดับหรือ Level ที่อยู่ด้านล่างของ Azure Hierarchy ตามรูปด้านบนครับ ซึ่งเราเรียกคอนเซปนี้ว่า "Inheritance" ครับ


และภาพรวมของส่วนประกอบต่างๆ ของ RBAC ที่ผมอธิบายไป จะมีหน้าตาตามรูปด้านล่างครับ
















และทั้งหมดนี้คือเรื่องราวของ RBAC ที่ผมหยิบเอามานำเสนอทุกท่านครับผม.....