# SAML, ພາຍໃຕ້ຜ້າຄຸມ: ລາຍເຊັນພາຍໃນຈົດໝາຍ

Published: 2026-09-24

SAML ລົງຊື່ເຂົ້າໃຊ້ທ່ານເຂົ້າໃນເກືອບທຸກແອັບເຮັດວຽກ, ແລະລາຍເຊັນຂອງມັນອາໄສຢູ່ພາຍໃນ XML ທີ່ມັນເຊັນ. ພາຍໃຕ້ຜ້າຄຸມ: ການເຕັ້ນລຳການເຂົ້າສູ່ລະບົບລະຫວ່າງແອັບ, ບຣາວເຊີ ແລະຜູ້ໃຫ້ບໍລິການຕົວຕົນ, ການຢືນຢັນເປັນແນວໃດ, ເປັນຫຍັງການກຳນົດມາດຕະຖານຕ້ອງເຫັນດີນຳທຸກໄບຕ໌, ແລະເປັນຫຍັງບັນຫາປະເພດດຽວກັນຈຶ່ງກັບຄືນມາຕັ້ງແຕ່ປີ 2012 ເຖິງ 2025. ກະຕຸ້ນໂດຍ Trail of Bits' "SAML: A fractal of bad design" (312 ຄະແນນໃນ Hacker News).

Canonical: https://thedailydiff.dev/lo/video/2026-09-24-saml-under-the-hood/

## ສິ່ງທີ່ວິດີໂອນີ້ກວມເອົາ

- SAML: ການເຂົ້າສູ່ລະບົບທີ່ເຊັນຕົວເອງຈາກພາຍໃນ
- 2002: ສີ່ຮູບແບບ XML, ໜຶ່ງຄະນະກຳມະການ, ອຸດສາຫະກຳທັງໝົດ
- ການເຕັ້ນລຳການເຂົ້າສູ່ລະບົບ: ແອັບ → ຜູ້ໃຫ້ບໍລິການຕົວຕົນ → ກັບຄືນຜ່ານບຣາວເຊີຂອງທ່ານ
- ການຢືນຢັນ: ລາຍເຊັນອາໄສຢູ່ພາຍໃນສິ່ງທີ່ມັນເຊັນ
- ການກຳນົດມາດຕະຖານ: ເຫັນດີນຳທຸກໄບຕ໌, ຫຼືບໍ່ມີໃຜເຂົ້າສູ່ລະບົບ

## ບົດ

- 0:00 SAML: ການເຂົ້າສູ່ລະບົບທີ່ເຊັນຕົວເອງຈາກພາຍໃນ
- 0:34 2002: ສີ່ຮູບແບບ XML, ໜຶ່ງຄະນະກຳມະການ, ອຸດສາຫະກຳທັງໝົດ
- 0:46 ການເຕັ້ນລຳການເຂົ້າສູ່ລະບົບ: ແອັບ → ຜູ້ໃຫ້ບໍລິການຕົວຕົນ → ກັບຄືນຜ່ານບຣາວເຊີຂອງທ່ານ
- 0:59 ການຢືນຢັນ: ລາຍເຊັນອາໄສຢູ່ພາຍໃນສິ່ງທີ່ມັນເຊັນ
- 1:10 ການກຳນົດມາດຕະຖານ: ເຫັນດີນຳທຸກໄບຕ໌, ຫຼືບໍ່ມີໃຜເຂົ້າສູ່ລະບົບ
- 1:32 2012: ຜູ້ກວດສອບ ແລະ ຜູ້ອ່ານເບິ່ງອົງປະກອບທີ່ແຕກຕ່າງກັນ
- 1:51 2018 ແລະ 2025: ສອງຕົວວິເຄາະ, ສອງຄໍາຕອບທີ່ແຕກຕ່າງກັນ
- 2:08 ເປັນຫຍັງມັນຈຶ່ງແຕກຫັກຢູ່ເລື້ອຍໆ: ຮູບແບບທີ່ບໍ່ດີ
- 2:27 ວັນຈັນ: OIDC ກ່ອນ, ຫໍສະໝຸດທີ່ຮັກສາໄວ້, ຮູບແບບທີ່ເຄັ່ງຄັດ
- 2:43 ຄໍາຕັດສິນ, ພາຍໃຕ້ຜ້າຄຸມ: REVERT

## ບົດບັນທຶກທີ່ແປແລ້ວ

ແປຈາກຄຳບັນຍາຍຕົ້ນສະບັບພາສາອັງກິດ. ສຽງ ແລະ ຄຳບັນຍາຍທີ່ມີໃຫ້ແມ່ນຄວບຄຸມໂດຍ YouTube.

### SAML: ການເຂົ້າສູ່ລະບົບທີ່ເຊັນຕົວເອງຈາກພາຍໃນ

0:00 SAML ແມ່ນ XML ທີ່ລົງຊື່ທ່ານເຂົ້າສູ່ລະບົບໃນເກືອບທຸກແອັບເຮັດວຽກທີ່ທ່ານມີ, ແລະລາຍເຊັນຂອງມັນອາໄສຢູ່ພາຍໃນເອກະສານທີ່ມັນເຊັນ, ຄືກັບຜູ້ຮັບຮອງປະທັບຕາຂອງລາວຢູ່ພາຍໃນຊອງຈົດໝາຍທີ່ລາວກໍາລັງປະທັບຕາ. ສິບປີຫຼັງຈາກຄະນະກໍາມະການໄດ້ຂຽນມັນ, ນັກຄົ້ນຄວ້າໄດ້ທົດສອບສິບສີ່ SAML ໂຄງຮ່າງ. ສິບເອັດລົ້ມເຫຼວ. ແລະອາທິດນີ້ໂພສ Trail of Bits ທີ່ເອີ້ນມັນວ່າ fractal of bad design ໄດ້ຖືກນຳໄປທີ່ ໜ້າທໍາອິດຂອງ Hacker News. ໃນສາມນາທີ: ການເຕັ້ນລໍາການເຂົ້າສູ່ລະບົບເຮັດວຽກແນວໃດ, ລາຍເຊັນເຊື່ອງຢູ່ໃສ,

0:27 ແລະເປັນຫຍັງການແກ້ໄຂທີ່ທຸກຄົນເຫັນດີນໍາແມ່ນໂປຣໂຕຄໍທີ່ແຕກຕ່າງກັນ. ນີ້ແມ່ນ The Daily Diff, ພາຍໃຕ້ຜ້າຄຸມ.

### 2002: ສີ່ຮູບແບບ XML, ໜຶ່ງຄະນະກຳມະການ, ອຸດສາຫະກຳທັງໝົດ

0:34 ສອງພັນສອງ. ຄະນະກໍາມະການຄວາມປອດໄພທີ່ Oasis ລວມສີ່ຮູບແບບ XML ຂອງຜູ້ຂາຍເຂົ້າເປັນອັນດຽວ. ມະຫາວິທະຍາໄລຮັບເອົາມັນກ່ອນ, ຫຼັງຈາກນັ້ນ Okta ສ້າງຕັ້ງບໍລິສັດຢູ່ມັນ, ໄວທີ່ສຸດທີ່ເອກະສານຄະນະກໍາມະການເຄີຍປ່ຽນເປັນລາຍໄດ້. ທ່ານເປີດແອັບ.

### ການເຕັ້ນລຳການເຂົ້າສູ່ລະບົບ: ແອັບ → ຜູ້ໃຫ້ບໍລິການຕົວຕົນ → ກັບຄືນຜ່ານບຣາວເຊີຂອງທ່ານ

0:46 ມັນບໍ່ຮູ້ວ່າທ່ານແມ່ນໃຜ, ດັ່ງນັ້ນມັນຈະສົ່ງບຣາວເຊີຂອງທ່ານໄປຫາຜູ້ໃຫ້ບໍລິການຕົວຕົນ, ເວົ້າວ່າ Okta ຂອງບໍລິສັດທ່ານ. ທ່ານເຂົ້າສູ່ລະບົບຢູ່ທີ່ນັ້ນ. Okta ມອບເອກະສານ XML ທີ່ລົງນາມໃຫ້ບຣາວເຊີຂອງທ່ານທີ່ບອກວ່າທ່ານແມ່ນໃຜ, ແລະບຣາວເຊີສົ່ງມັນກັບຄືນມາ.

### ການຢືນຢັນ: ລາຍເຊັນອາໄສຢູ່ພາຍໃນສິ່ງທີ່ມັນເຊັນ

0:59 ເອກະສານນັ້ນແມ່ນການຢືນຢັນ. ມັນລະບຸຊື່ຜູ້ໃຊ້, ແລະລາຍເຊັນນັ່ງຢູ່ພາຍໃນມັນ, ຊີ້ກັບຄືນໄປຫາການຢືນຢັນໂດຍ ID ຂອງມັນ. ແລະທັງຫມົດນີ້ຜ່ານບຣາວເຊີຂອງທ່ານ, ນັ້ນຄື, ຜ່ານຜູ້ໃຊ້. ເພື່ອກວດສອບມັນ, ແອັບ

### ການກຳນົດມາດຕະຖານ: ເຫັນດີນຳທຸກໄບຕ໌, ຫຼືບໍ່ມີໃຜເຂົ້າສູ່ລະບົບ

1:11 ສ້າງຄືນໄບຕ໌ທີ່ຖືກເຊັນໄວ້ຢ່າງແນ່ນອນ. ມັນຕັດລາຍເຊັນອອກ, ປົກກະຕິຊ່ອງຫວ່າງ ແລະຄຸນສົມບັດ ຄໍາສັ່ງ, ແລະ hash ຜົນໄດ້ຮັບ. ນັ້ນແມ່ນ canonicalization, ແລະຖ້າສອງຝ່າຍບໍ່ເຫັນດີນໍາໂດຍໄບຕ໌ດຽວ, ບໍ່ມີໃຜເຂົ້າສູ່ລະບົບ. ໂທເຄັນເວັບ JSON ເຮັດມັນແຕກຕ່າງກັນ. ສ່ວນຫົວ, ເພໂຫຼດ ແລະລາຍເຊັນນັ່ງຢູ່ຂ້າງກັນກັບຈຸດຢູ່ລະຫວ່າງກາງ. ບໍ່ມີຫຍັງທີ່ຈະຕ້ອງຕັດອອກກ່ອນ.

### 2012: ຜູ້ກວດສອບ ແລະ ຜູ້ອ່ານເບິ່ງອົງປະກອບທີ່ແຕກຕ່າງກັນ

1:32 ນີ້ແມ່ນຮອຍແຕກ. ລະຫັດທີ່ກວດສອບລາຍເຊັນ ແລະລະຫັດທີ່ອ່ານຊື່ຜູ້ໃຊ້ແມ່ນ ມັກຈະເປັນສອງສ່ວນທີ່ແຕກຕ່າງກັນ. ໃນປີ 2012, ເອກະສານທີ່ເອີ້ນວ່າ On Breaking SAML ໄດ້ສະແດງໃຫ້ເຫັນວ່າທ່ານສາມາດຍ້າຍ ການຢືນຢັນທີ່ເຊັນໄວ້ທີ່ຜູ້ອ່ານບໍ່ສົນໃຈມັນ, ແລະໃສ່ອີກອັນໜຶ່ງທີ່ມັນ ເບິ່ງ. Salesforce ແລະ Shibboleth ແມ່ນໃນບັນດາສິບເອັດທີ່ຕົກເປັນເຫຍື່ອ. ໃນປີ 2018, Duo ໄດ້ສະແດງໃຫ້ເຫັນວ່າຄໍາເຫັນພາຍໃນຊື່ຜູ້ໃຊ້ສາມາດເຮັດໃຫ້ບາງ

### 2018 ແລະ 2025: ສອງຕົວວິເຄາະ, ສອງຄໍາຕອບທີ່ແຕກຕ່າງກັນ

1:55 ຫໍສະໝຸດອ່ານພຽງເຄິ່ງຊື່, ໃນຂະນະທີ່ລາຍເຊັນຍັງກວດສອບຖືກຕ້ອງ. ໃນປີ 2025, GitHub ພົບສອງຕົວວິເຄາະ XML ພາຍໃນ ruby SAML ບໍ່ເຫັນດີນໍາກ່ຽວກັບເອກະສານດຽວກັນ. ຂໍ້ຜິດພາດດຽວກັນ, ທົດສະວັດໃໝ່. Trail of Bits ເອີ້ນມັນວ່າ fractal, ເພາະວ່າທຸກລະດັບທີ່ທ່ານຂະຫຍາຍເຂົ້າໄປມີ

### ເປັນຫຍັງມັນຈຶ່ງແຕກຫັກຢູ່ເລື້ອຍໆ: ຮູບແບບທີ່ບໍ່ດີ

2:12 ຂໍ້ບົກຜ່ອງດຽວກັນ. ມັນຖືກສ້າງຂຶ້ນບົນພື້ນຖານ XML, ລາຍເຊັນຖືກຫຸ້ມຫໍ່, ແລະການເຂົ້າສູ່ລະບົບຕົວຈິງໃຊ້ພຽງແຕ່ໜຶ່ງສ່ວນສິບຂອງສະເປັກ. ແລະຄໍາຕອບອັນດັບຕົ້ນໃນ Hacker News ມາຈາກຜູ້ຊື້. ຖ້າທ່ານບໍ່ມີການຮອງຮັບ SAML, ຂ້ອຍສາມາດຊອກຫາຜະລິດຕະພັນທີ່ມີ. ທັງສອງແມ່ນຄວາມຈິງ, ຊຶ່ງເປັນບັນຫາ. ດັ່ງນັ້ນ, ວັນຈັນ. ສົ່ງ OpenID Connect ກ່ອນ, Fly ແລະ Tailscale ຂາຍໃຫ້

### ວັນຈັນ: OIDC ກ່ອນ, ຫໍສະໝຸດທີ່ຮັກສາໄວ້, ຮູບແບບທີ່ເຄັ່ງຄັດ

2:31 ວິສາຫະກິດໂດຍບໍ່ມີ SAML ເລີຍ. ຖ້າລູກຄ້າບັງຄັບ, ໃຊ້ຫໍສະໝຸດທີ່ຮັກສາໄວ້, ຮັກສາມັນໃຫ້ທັນສະໄໝ, ແລະປະຕິເສດຂໍ້ຄວາມທີ່ບໍ່ຄືກັບສິ່ງທີ່ Okta ຫຼື Google ສົ່ງ. ຢ່າຂຽນການກວດສອບລາຍເຊັນຂອງທ່ານເອງ.

### ຄໍາຕັດສິນ, ພາຍໃຕ້ຜ້າຄຸມ: REVERT

2:43 ຄໍາຕັດສິນ, ພາຍໃຕ້ຜ້າຄຸມ. REVERT. ເກືອບຊາວຫ້າປີ, ບັນຫາປະເພດດຽວກັນທີ່ບໍ່ເຄີຍຕາຍ, ແລະການແກ້ໄຂທີ່ທຸກຄົນເຫັນດີນໍາແມ່ນໂປຣໂຕຄໍທີ່ແຕກຕ່າງກັນ. ວັນເສົາທີ່ຜ່ານມາຂ້ອຍໄດ້ແຍກ passkeys, ດັ່ງນັ້ນບອກຂ້ອຍວ່າຈະເປີດຫຍັງຕໍ່ໄປໃນ ຄໍາເຫັນ. ແລະນັ້ນແມ່ນຄວາມແຕກຕ່າງສໍາລັບມື້ນີ້. ຂ້ອຍແມ່ນ Niko ຈາກ Axrisi. ລວມເຂົ້າກັນຢ່າງມີຄວາມຮັບຜິດຊອບ.

## ແຫຼ່ງຂໍ້ມູນ

- [Trail of Bits, "SAML: A fractal of bad design" (Matt Schwager, Sep 21, 2026)](https://blog.trailofbits.com/2026/09/21/saml-a-fractal-of-bad-design/) — blog.trailofbits.com
- [Hacker News thread](https://news.ycombinator.com/item?id=49806335) — news.ycombinator.com
- [Somorovsky et al., "On Breaking SAML: Be Whoever You Want to Be", USENIX Security 2012](https://www.usenix.org/conference/usenixsecurity12/technical-sessions/presentation/somorovsky) — www.usenix.org
- [Duo Labs, SAML vulnerabilities affecting multiple implementations (2018): https://duo.com/blog/duo-finds-saml-vulnerabilities-affecting-multiple-implementations · CERT VU#475445](https://www.kb.cert.org/vuls/id/475445) — www.kb.cert.org
- [GitHub Security Lab, "Sign in as anyone: Bypassing SAML SSO authentication with parser differentials" (Mar 12, 2025)](https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials/) — github.blog
