Microsoft identity platform

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

Anushika Agarwal

Cloud Data Engineer

Microsoft identity platform คืออะไร?

  • จัดการการลงชื่อเข้าใช้และการเข้าถึง แอป
    • สร้างบน Microsoft Entra ID
      • Entra ID = บริการ Identity หลัก
      • Identity Platform = เลเยอร์สำหรับนักพัฒนา

ความสัมพันธ์ระหว่าง Entra ID กับ Microsoft Identity Platform

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

ทำงานอย่างไร?

  • การยืนยันตัวตน:
    • มาตรฐาน:
      1. OAuth 2.0: จำกัดสิทธิ์การดำเนินการของแอป
      2. OpenID Connect: ยืนยันว่าคุณคือใคร
    • ประเภทบัญชี
      • บัญชีองค์กร/โรงเรียน
      • บัญชี Microsoft ส่วนตัว
      • บัญชีโซเชียล/ท้องถิ่น

Microsoft Identity Platform

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

เครื่องมือหลักของ Microsoft identity platform

  • MSAL:
    • ขอ token สำหรับแอป

MSAL

  • การลงทะเบียนแอป:
    • ตั้งค่า identity ของแอปใน Azure

App registration

  • Microsoft Graph API:
    • เข้าถึงผู้ใช้ กลุ่ม และทรัพยากร

Microsoft Graph API

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

การลงทะเบียนแอป

  • การลงทะเบียนแอปเชื่อมต่อแอปกับ Entra ID

  • เลือก:

    • Single-tenant: แอปใช้งานภายในองค์กรของคุณเท่านั้น
    • Multi-tenant: แอปใช้งานข้ามองค์กรได้
  • สร้างโดยอัตโนมัติ:

    • Application object
    • Service principal
  • เพิ่ม secret, certificate, scope และ branding

App Registration

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

Application object

  • แบบพิมพ์เขียว ของแอป
  • อยู่ใน home tenant ของคุณ
  • กำหนด การยืนยันตัวตน และ กฎการเข้าถึง

Application Object

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

ตัวอย่าง: application object ใน PeopleSphere

  • PeopleSphere สร้างแอป HR ใน tenant ของตัวเอง

ตัวอย่าง Application Object ของ PeopleSphere

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

Service principal

  • อินสแตนซ์ ของแอปใน แต่ละ tenant
  • สำเนาที่ใช้งานได้จริงของคีย์ต้นฉบับ
  • ลูกค้าแต่ละรายจะมี service principal ใน tenant ของตัวเอง

Service Principal

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

ตัวอย่าง: service principal ใน DataCamp

  • Service Principal ที่สร้างใน tenant ของ DataCamp

ตัวอย่าง service principal ใน DataCamp

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

ประเภทของ service principal

  • Application:
    • อินสแตนซ์แอปมาตรฐาน

Application

  • Managed Identity:
    • เข้าถึงโดยไม่ต้องใช้ secret

Managed Identity

  • Legacy:
    • แอปรุ่นเก่า

Legacy

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

สิทธิ์การเข้าถึง

  • แอปขอสิทธิ์เข้าถึงโดยใช้ OAuth 2.0 และ permission scope

  • graph.microsoft.com/Calendars.Read

ตัวอย่าง scope Calendars.Read

วิธีที่แอปขอและได้รับสิทธิ์เข้าถึงผ่าน Microsoft Identity Platform

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

Delegated permissions

  • แอปดำเนินการแทนผู้ใช้เมื่อมี ผู้ใช้ลงชื่อเข้าใช้

  • ตัวอย่าง: PeopleSphere นัดหมายประชุมให้ผู้ใช้ DataCamp

ตัวอย่าง delegated permission ของ PeopleSphere

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

App-only permissions

  • แอปดำเนินการในนามของตัวเอง
  • ไม่มีผู้ใช้ เข้ามาเกี่ยวข้อง
  • ตัวอย่าง: PeopleSphere ซิงค์ข้อมูล HR ทุกคืน

ตัวอย่าง App-only permission ของ PeopleSphere

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

การให้ความยินยอม

  • แอปต้องได้รับความยินยอมเพื่อเปิดใช้งาน permission scope

  • ประเภทของความยินยอม:

    • Static: กำหนดสิทธิ์ตอนลงทะเบียน
    • Incremental: เพิ่มสิทธิ์ตามที่ต้องการ
    • Admin: จำเป็นสำหรับการเข้าถึงสิทธิ์สูง

Consent

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

มาฝึกกันเถอะ!

การรักษาความปลอดภัยบน Azure สำหรับนักพัฒนา

Preparing Video For Download...