การยืนยันตัวตนและการอนุญาตด้วย Entra ID

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

แนวคิดพื้นฐานของ OAuth

การผสานรวม Entra ID กับ APIM

Azure API Management

เหตุใดจึงใช้ identity provider

อุปมา valet รถยนต์

  • ลองนึกภาพ IdP เป็นพนักงาน valet รถยนต์
  • ในรถมีของมีค่าอยู่ในกล่องเก็บของ (ข้อมูลที่ปลอดภัย)
  • คุณมอบ กุญแจ valet พิเศษให้พนักงาน
    • ใช้ได้แค่จอดรถ ไม่สามารถเข้าถึงของมีค่าได้
  • ในทำนองเดียวกัน IdP จัดการความปลอดภัยของแอปโดยไม่สามารถเข้าถึงข้อมูลภายในแอปได้
  • ตัวอย่าง: Entra ID ทำหน้าที่เป็น IdP และ API Manager ทำหน้าที่เป็น client
Azure API Management

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

  • พบ Entra ID ได้ใน Azure Portal
  • ต้องมีสิทธิ์ contributor ระดับสูงจึงจะจัดการได้
  • หากต้องการใช้ OAuth ให้เพิ่ม entity ใหม่ใน App Registration
  • การลงทะเบียนแต่ละครั้งต้องระบุชื่อและ redirect URL ที่ถูกต้อง
  • สำหรับ APIM ให้ใช้ที่อยู่ของ APIM instance เป็น redirect URL
  • เพื่อให้ Entra ID ส่งคำขอกลับมายัง APIM หลังจากล็อกอิน

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

Azure API Management

การบันทึกข้อมูล client

ข้อมูล client ของ Entra ID

  • Client ID และ Tenant ID

    • ทำหน้าที่เป็น ที่อยู่สาธารณะ ของแอปพลิเคชัน
    • โค้ดใช้ค่าเหล่านี้เพื่อบอก Entra ID ว่า "ใคร" คือแอปนี้
  • Client Secret

    • ทำหน้าที่เป็น รหัสผ่าน ของแอปพลิเคชัน
    • โค้ดนำไปยืนยันตัวตน
    • ต้องเก็บอย่างปลอดภัยเสมอ และห้ามเปิดเผยในโค้ดฝั่ง client
Azure API Management

การดึง URL ของ Endpoint

  • ดึง URL ของ endpoint จาก IdP ก่อนเชื่อมต่อ client

    • ใน Entra ID คลิก Endpoints บนหน้า Overview ของ app registration
    • บันทึก endpoint authorization และ token ของ OAuth 2.0
  • Authorization Endpoint

    • จุดที่โค้ดนำผู้ใช้ไปลงชื่อเข้าใช้
  • Token Endpoint

    • Backend แลก authorization code เพื่อรับ access token

ขั้นตอนการยืนยันตัวตนของ Entra ID

Azure API Management

การเชื่อมต่อ APIM กับ Entra ID

การเชื่อมต่อ OAuth และ OIDC ใน APIM

  • ใน APIM เปิด OAuth 2.0 + OpenID Connect ใต้เมนู APIs

    • กำหนด authorization server ใหม่
  • ตั้งค่า server ด้วย:

    • Authorization และ token endpoints
    • Client ID และ Client Secret
    • Scope ที่ API เปิดให้ใช้งาน
Azure API Management

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

Azure API Management

Preparing Video For Download...