SAML คืออะไร และทำงานอย่างไร?

SAML: แลกเปลี่ยนข้อมูลยืนยันตัวตนระหว่าง IdP และ SP เพื่อเข้าถึงแอปพลิเคชันอย่างปลอดภัยและราบรื่น

อาชว์

อาชว์

18 May 2025

SAML คืออะไร และทำงานอย่างไร?

SAML (Security Assertion Markup Language) ช่วยให้เข้าถึงแอปพลิเคชันหลายรายการได้อย่างปลอดภัยและราบรื่นโดยการแลกเปลี่ยนข้อมูลการตรวจสอบสิทธิ์ระหว่าง Identity Provider (IdP) และ Service Provider (SP)

สิ่งนี้ช่วยให้ผู้ใช้สามารถเข้าสู่ระบบเพียงครั้งเดียวและเข้าถึงบริการต่างๆ ได้โดยไม่ต้องป้อนข้อมูลประจำตัวซ้ำ ซึ่งช่วยเพิ่มความปลอดภัยและประสบการณ์การใช้งานของผู้ใช้ในสภาพแวดล้อมขององค์กร ในโพสต์นี้ เราจะสำรวจวิธีการทำงานของ SAML และประโยชน์ของ SAML

SAML (Security Assertion Markup Language) คืออะไร

การตรวจสอบสิทธิ์ SAML (Security Assertion Markup Language) ช่วยให้เข้าถึงบริการได้อย่างปลอดภัยโดยการแลกเปลี่ยนข้อมูลการตรวจสอบสิทธิ์และการอนุญาตระหว่าง Identity Provider (IdP) และ Service Provider (SP) โปรโตคอลนี้มักใช้ในสภาพแวดล้อมขององค์กรเพื่อให้ผู้ใช้สามารถเข้าถึงแอปพลิเคชันหลายรายการได้อย่างราบรื่นโดยใช้ชุดข้อมูลประจำตัวชุดเดียว

ส่วนประกอบของ SAML

นี่คือส่วนประกอบและแนวคิดหลักของ SAML:

💡
Apidog Enterprise นำเสนอการกำหนดค่า SSO ระดับองค์กรโดยใช้ Identity Provider ที่เข้ากันได้กับ SAML 2.0 เช่น Microsoft Entra ID คุณสมบัตินี้ช่วยปรับปรุงการตรวจสอบสิทธิ์สำหรับผู้ใช้ระดับองค์กร
button

SAML 2.0

เมื่อสร้างจากแนวคิดของ SAML มาเจาะลึก SAML 2.0 ซึ่งเป็นเวอร์ชันมาตรฐานที่ใช้กันอย่างแพร่หลายที่สุด SAML 2.0 ได้แนะนำการปรับปรุงและคุณสมบัติหลายอย่างเหนือกว่ารุ่นก่อน SAML 1.1:

  1. Enhanced Single Sign-On (SSO): SAML 2.0 ปรับปรุงความสามารถของ SSO ทำให้ง่ายต่อการใช้งานและแข็งแกร่งขึ้นในแง่ของความปลอดภัยและประสบการณ์การใช้งานของผู้ใช้
  2. Identity Federation: ช่วยให้สามารถรวม Identity Federation ได้อย่างราบรื่นยิ่งขึ้นระหว่างโดเมนต่างๆ ทำให้ผู้ใช้สามารถเข้าถึงทรัพยากรในองค์กรต่างๆ ได้ด้วยกระบวนการตรวจสอบสิทธิ์เพียงครั้งเดียว
  3. Support for Multiple Authentication Contexts: SAML 2.0 สามารถจัดการระดับการรับรองความถูกต้องที่แตกต่างกันได้ ทำให้สามารถใช้วิธีการตรวจสอบสิทธิ์ที่แข็งแกร่งขึ้นได้ตามต้องการ
  4. Metadata Exchange: เวอร์ชันนี้รองรับการแลกเปลี่ยนเมตาเดตาระหว่าง Identity Provider และ Service Provider ซึ่งช่วยในการกำหนดค่าและสร้างความสัมพันธ์ที่เชื่อถือได้โดยอัตโนมัติ
  5. Improved Protocol Bindings: SAML 2.0 มีการสนับสนุนที่ดีขึ้นสำหรับโปรโตคอลการขนส่งต่างๆ เช่น HTTP Redirect, HTTP POST และ Artifact Binding ซึ่งช่วยเพิ่มความยืดหยุ่นและความเข้ากันได้
  6. Attribute Query and Consent: SAML 2.0 ช่วยให้สามารถสอบถามแอตทริบิวต์ของผู้ใช้และจัดการความยินยอมของผู้ใช้ได้อย่างมีประสิทธิภาพมากขึ้น ซึ่งช่วยปรับปรุงการควบคุมข้อมูลส่วนบุคคลของผู้ใช้

SAML Authentication ทำงานอย่างไร

กระบวนการตรวจสอบสิทธิ์

การตรวจสอบสิทธิ์ SAML เริ่มต้นเมื่อผู้ใช้เริ่มกระบวนการเข้าสู่ระบบโดยป้อนข้อมูลประจำตัวที่ IdP IdP จะตรวจสอบตัวตนของผู้ใช้และสร้างการยืนยัน SAML ซึ่งประกอบด้วยแอตทริบิวต์ของผู้ใช้และข้อมูลการตรวจสอบสิทธิ์

การยืนยันนี้รวมถึงรายละเอียดต่างๆ เช่น ตัวตนของผู้ใช้ เวลาในการตรวจสอบสิทธิ์ และเงื่อนไขที่การยืนยันมีผลบังคับใช้ เพื่อให้มั่นใจในความสมบูรณ์และความถูกต้องของข้อมูล การยืนยันจะถูกลงนามแบบดิจิทัลโดย IdP

การเข้าถึงบริการ

เมื่อตรวจสอบสิทธิ์แล้ว ผู้ใช้จะพยายามเข้าถึงบริการที่ SP มอบให้ SP ที่ต้องการตรวจสอบตัวตนของผู้ใช้ จะเปลี่ยนเส้นทางผู้ใช้ไปยัง IdP พร้อมกับคำขอตรวจสอบสิทธิ์ IdP ตอบสนองโดยการส่งการยืนยัน SAML ไปยัง SP โดยทั่วไปผ่านเบราว์เซอร์ของผู้ใช้โดยใช้ HTTP POST หรือ HTTP Redirect

จากนั้น SP จะตรวจสอบความถูกต้องของการยืนยัน SAML โดยการตรวจสอบลายเซ็นดิจิทัลและเงื่อนไขของการยืนยัน หากการยืนยันถูกต้อง SP จะให้สิทธิ์ผู้ใช้ในการเข้าถึงบริการที่ร้องขอ กระบวนการนี้ราบรื่นสำหรับผู้ใช้ ซึ่งจำเป็นต้องเข้าสู่ระบบเพียงครั้งเดียวเพื่อเข้าถึงบริการหลายรายการ

สถานการณ์ตัวอย่าง

พิจารณาสถานการณ์องค์กรทั่วไป ในช่วงเริ่มต้นวันทำงาน John จะเข้าสู่ระบบระบบ Identity and Access Management (IAM) ของบริษัท ซึ่งทำหน้าที่เป็น IdP โดยใช้ข้อมูลประจำตัวของบริษัท

IdP จะตรวจสอบข้อมูลประจำตัวของ John และสร้างการยืนยัน SAML ซึ่งรวมถึงข้อมูลต่างๆ เช่น ชื่อผู้ใช้ของ John, การประทับเวลาการตรวจสอบสิทธิ์ และแอตทริบิวต์การเข้าถึงตามบทบาท จากนั้น John พยายามเข้าถึงบริการอีเมลที่โฮสต์ของบริษัท ซึ่งเป็น SP

บริการอีเมลจะเปลี่ยนเส้นทาง John ไปยัง IdP พร้อมกับคำขอตรวจสอบสิทธิ์ IdP จะส่งการยืนยัน SAML กลับไปยังบริการอีเมลผ่านเบราว์เซอร์ของ John บริการอีเมลจะตรวจสอบความถูกต้องของการยืนยันโดยการตรวจสอบลายเซ็นดิจิทัลและตรวจสอบให้แน่ใจว่าตรงตามเงื่อนไขทั้งหมด เช่น การยืนยันมีไว้สำหรับบริการอีเมลและไม่หมดอายุ

เมื่อตรวจสอบความถูกต้องแล้ว John จะได้รับสิทธิ์เข้าถึงบริการอีเมลโดยไม่จำเป็นต้องป้อนข้อมูลประจำตัวซ้ำ ทำให้เขาใช้บริการได้อย่างราบรื่น

ประโยชน์ของการตรวจสอบสิทธิ์ SAML

ด้วยการรวมการตรวจสอบสิทธิ์ SAML องค์กรต่างๆ สามารถปรับปรุงการจัดการการเข้าถึงของผู้ใช้ เพิ่มความปลอดภัยโดยลดความเสี่ยงของการลืมรหัสผ่านและการนำกลับมาใช้ใหม่ และมอบการเข้าถึงแอปพลิเคชันหลายรายการได้อย่างราบรื่นให้กับผู้ใช้ การรวมนี้ช่วยปรับปรุงทั้งประสิทธิภาพการดำเนินงานและสถานะความปลอดภัย

SAML Assertion คืออะไร

SAML Assertion คือ เอกสาร XML ที่ออกโดย SAML Identity Provider (IdP) และใช้โดย Service Provider (SP) ประกอบด้วยคำสั่งเกี่ยวกับผู้ใช้ที่ทั้งสองฝ่ายสามารถไว้วางใจได้

วัตถุประสงค์หลักของ SAML Assertion คือการส่งข้อมูลความปลอดภัยระหว่าง IdP และ SP ในลักษณะที่ปลอดภัยและได้มาตรฐาน นี่คือส่วนประกอบหลักและประเภทของคำสั่งที่พบภายใน SAML Assertion:

ส่วนประกอบหลัก

ประเภทของคำสั่ง

SAML Assertion ทำงานอย่างไร

  1. User Requests Access: ผู้ใช้พยายามเข้าถึงทรัพยากรที่ SP
  2. SP Requests Authentication: SP เปลี่ยนเส้นทางผู้ใช้ไปยัง IdP เพื่อตรวจสอบสิทธิ์
  3. User Authenticates: ผู้ใช้ให้ข้อมูลประจำตัวแก่ IdP
  4. IdP Issues Assertion: เมื่อตรวจสอบสิทธิ์สำเร็จ IdP จะสร้าง SAML Assertion และส่งกลับไปยัง SP โดยทั่วไปผ่านเบราว์เซอร์ของผู้ใช้
  5. SP Validates Assertion: SP จะตรวจสอบความถูกต้องของการยืนยัน โดยตรวจสอบความสมบูรณ์ ความถูกต้องของผู้ออก และเงื่อนไข
  6. Access Granted: หากการยืนยันถูกต้อง ผู้ใช้จะได้รับสิทธิ์เข้าถึงทรัพยากร

ข้อควรพิจารณาด้านความปลอดภัย

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API