บริบทของเว็บแอปพลิเคชันแตกต่างกันอย่างไร ฉันเห็นตัวย่อ "รับรองความถูกต้อง" มาก มันหมายถึงการรับรองความถูกต้องหรือการรับรองความถูกต้องหรือไม่ หรือเป็นทั้งสองอย่าง?
authn
สำหรับการรับรองความถูกต้องและauthz
การอนุญาต
บริบทของเว็บแอปพลิเคชันแตกต่างกันอย่างไร ฉันเห็นตัวย่อ "รับรองความถูกต้อง" มาก มันหมายถึงการรับรองความถูกต้องหรือการรับรองความถูกต้องหรือไม่ หรือเป็นทั้งสองอย่าง?
authn
สำหรับการรับรองความถูกต้องและauthz
การอนุญาต
คำตอบ:
การรับรองความถูกต้องเป็นกระบวนการของการตรวจสอบว่ามีใครบางคนเป็นผู้ที่พวกเขาอ้างว่าเป็น
การอนุญาตหมายถึงกฎที่กำหนดว่าใครได้รับอนุญาตให้ทำอะไร เช่น Adam อาจได้รับอนุญาตให้สร้างและลบฐานข้อมูลในขณะที่ Usama ได้รับอนุญาตให้อ่านเท่านั้น
แนวคิดทั้งสองนั้นมีมุมฉากและเป็นอิสระอย่างสมบูรณ์ แต่ทั้งคู่เป็นศูนย์กลางของการออกแบบความปลอดภัย
ในแง่ของเว็บแอปการพูดที่หยาบคายอย่างมากการตรวจสอบความถูกต้องคือเมื่อคุณตรวจสอบข้อมูลรับรองการเข้าสู่ระบบเพื่อดูว่าคุณรู้จักผู้ใช้ที่เข้าสู่ระบบหรือไม่และการอนุญาตคือเมื่อคุณค้นหาการควบคุมการเข้าถึง หรือสร้างเนื้อหา
ในระยะสั้นได้โปรด :-)
Authentication = เข้าสู่ระบบ + รหัสผ่าน(คุณเป็นใคร)
การอนุญาต = สิทธิ์(สิ่งที่คุณได้รับอนุญาตให้ทำ)
"auth" แบบสั้นมีแนวโน้มที่จะอ้างอิงถึงตัวแรกหรือทั้งคู่
ขณะที่การตรวจสอบสิทธิ์การอนุญาต VSทำให้มัน:
การรับรองความถูกต้องเป็นกลไกที่ระบบสามารถระบุผู้ใช้ของตนได้อย่างปลอดภัย ระบบรับรองความถูกต้องให้คำตอบสำหรับคำถาม:
- ใครคือผู้ใช้?
- เป็นผู้ใช้จริง ๆ ที่เขา / เธอหมายถึงตัวเองเป็น
ในทางตรงกันข้ามการอนุญาตเป็นกลไกที่ระบบกำหนดระดับการเข้าถึงที่ผู้ใช้ที่ได้รับการรับรองความถูกต้องควรมีการรักษาความปลอดภัยทรัพยากรที่ควบคุมโดยระบบ ตัวอย่างเช่นระบบการจัดการฐานข้อมูลอาจได้รับการออกแบบเพื่อให้บุคคลที่ระบุบางอย่างมีความสามารถในการดึงข้อมูลจากฐานข้อมูล แต่ไม่สามารถเปลี่ยนข้อมูลที่เก็บไว้ในฐานข้อมูลในขณะที่ให้บุคคลอื่นสามารถเปลี่ยนข้อมูลได้ ระบบอนุญาตให้คำตอบสำหรับคำถาม:
- user X ได้รับอนุญาตให้เข้าถึงทรัพยากร R หรือไม่
- user X ได้รับอนุญาตให้ดำเนินการ P หรือไม่
- user X ได้รับอนุญาตให้ดำเนินการ P บนทรัพยากร R หรือไม่
ฉันชอบการยืนยันและการอนุญาตเพื่อการรับรองความถูกต้องและการอนุญาต
ในหัวของฉันและรหัสของฉันจะง่ายกว่าที่จะนึกถึง "การยืนยัน" และ "การอนุญาต" เพราะทั้งสองคำ
การรับรองความถูกต้องเป็นการตรวจสอบและการอนุญาตคือการตรวจสอบสิทธิ์ รับรองความถูกต้องอาจหมายถึงอย่างใดอย่างหนึ่ง แต่มีการใช้บ่อยกว่าเป็น "ผู้ใช้รับรองความถูกต้อง" คือ "การตรวจสอบผู้ใช้"
ความสับสนนั้นเป็นที่เข้าใจกันเนื่องจากคำสองคำนั้นฟังดูคล้ายกันและเนื่องจากแนวคิดมักเกี่ยวข้องและใช้งานร่วมกันอย่างใกล้ชิด นอกจากนี้ยังเป็นที่กล่าวถึงคำย่อที่ใช้กันทั่วไปรับรองความถูกต้องไม่ได้ช่วย
คนอื่น ๆ ได้อธิบายไปแล้วดีว่าการรับรองความถูกต้องและการอนุญาตหมายถึงอะไร นี่เป็นกฎง่ายๆที่จะช่วยให้ทั้งสองแยกกัน:
- Auth entiไอออนบวกตรวจสอบ ID ของคุณenti TY (หรือความถูกต้องถ้าคุณต้องการที่)
- การเขียนผู้ใช้จะตรวจสอบความถูกต้องของผู้เขียนของคุณเช่นสิทธิ์ในการเข้าถึงและอาจเปลี่ยนแปลงบางสิ่ง
ฉันพยายามสร้างภาพเพื่ออธิบายสิ่งนี้ด้วยคำพูดที่ง่ายที่สุด
1) การตรวจสอบความถูกต้องหมายถึง "คุณเป็นคนที่คุณพูดว่าคุณเป็น"
2) การอนุญาตหมายถึง "คุณควรจะทำสิ่งที่คุณพยายามทำหรือไม่?"
นี่คือคำอธิบายในภาพด้านล่าง
ฉันพยายามอธิบายในแง่ที่ดีที่สุดเท่าที่จะเป็นไปได้และสร้างภาพที่เหมือนกัน
การตรวจสอบความถูกต้องเป็นกระบวนการในการตรวจสอบตัวตนที่ประกาศ
มักจะตามด้วยการอนุญาตซึ่งเป็นการอนุมัติที่คุณสามารถทำได้และที่
กำลังเพิ่มคำตอบของ @ Kerrek;
การรับรองความถูกต้องเป็นรูปแบบทั่วไป (พนักงานทุกคนสามารถเข้าสู่เครื่องได้)
การอนุญาตเป็นรูปแบบเฉพาะ (แต่ผู้ดูแลระบบเท่านั้นที่สามารถติดตั้ง / ถอนการติดตั้งแอปพลิเคชันใน Machine)
การรับรองความถูกต้องเป็นกระบวนการตรวจสอบชื่อผู้ใช้และรหัสผ่านในการเข้าสู่ระบบของคุณ
การอนุญาตเป็นกระบวนการตรวจสอบว่าคุณสามารถเข้าถึงบางสิ่งได้
การรับรองความถูกต้อง - คุณเป็นคนที่คุณอ้างว่าเป็นหรือไม่?
การอนุญาต - คุณได้รับอนุญาตให้ทำสิ่งที่คุณพยายามทำหรือไม่?
app เว็บใช้Google เข้าสู่ระบบ หลังจากผู้ใช้ลงชื่อเข้าใช้สำเร็จ Google จะส่งคืน:
นอกจากนี้:
บริษัท อาจมีแดชบอร์ดผู้ดูแลระบบที่ให้การสนับสนุนลูกค้าในการจัดการผู้ใช้ของ บริษัท แทนที่จะให้โซลูชันการลงชื่อสมัครใช้ที่กำหนดเองซึ่งจะช่วยให้ฝ่ายสนับสนุนลูกค้าสามารถเข้าถึงแดชบอร์ดนี้ได้ บริษัท ใช้ Google Sign-In
โทเค็น JWT (ที่ได้รับจากกระบวนการลงชื่อเข้าใช้ของ Google) จะถูกส่งไปยังเซิร์ฟเวอร์การให้สิทธิ์ของ บริษัท เพื่อพิจารณาว่าผู้ใช้มีบัญชีG Suiteพร้อมโดเมนโฮสต์ขององค์กร (email@company.com) หรือไม่ และถ้าเป็นเช่นนั้นพวกเขาเป็นสมาชิกของกลุ่ม Google ของ บริษัท ที่สร้างขึ้นเพื่อสนับสนุนลูกค้าหรือไม่ ถ้าใช่ทั้งหมดของข้างต้นเราสามารถพิจารณาให้รับรองความถูกต้อง
เซิร์ฟเวอร์การอนุญาตของ บริษัท จะส่งโทเค็นการเข้าถึงแอปแดชบอร์ด โทเค็นการเข้าถึงนี้สามารถใช้เพื่อส่งคำขอที่ได้รับอนุญาตไปยังเซิร์ฟเวอร์ทรัพยากรของ บริษัท (เช่นความสามารถในการส่งคำขอ GET ไปยังปลายทางที่ส่งผู้ใช้ทั้งหมดของ บริษัท กลับ)
Authentication
เป็นกระบวนการของการตรวจสอบ:
digital signature
Authorization
Authentication
เป็นขั้นตอนต่อไปหลังจาก เป็นเรื่องเกี่ยวกับสิทธิ์ / บทบาท / สิทธิ์ของทรัพยากร OAuth (Open Authorization) เป็นตัวอย่างของการอนุญาต