มีความแตกต่างระหว่างการพิสูจน์ตัวตนและการอนุญาตหรือไม่?


97

ฉันเห็นคำศัพท์สองคำนี้ค่อนข้างซับซ้อน (โดยเฉพาะในสถานการณ์บนเว็บ แต่ฉันคิดว่ามันไม่ได้ จำกัด แค่นั้น) และฉันสงสัยว่ามีความแตกต่างหรือไม่

สำหรับฉันดูเหมือนว่าทั้งคู่หมายความว่าคุณได้รับอนุญาตให้ทำในสิ่งที่คุณกำลังทำอยู่ นี่เป็นเพียงการตั้งชื่อหรือมีความหมายที่แตกต่างกัน?


3
ใช่. มีความแตกต่างใหญ่ Wiki พูดว่าอะไร? ด้วย 148k ตอนนี้จริงๆ ;-) ฉันสามารถรับรองความถูกต้องว่าคุณเป็น Enemy Spy (หรือส่วนตัวโดยไม่ต้องผ่านการกวาดล้าง) โดยไม่ได้รับอนุญาตให้คุณเข้าถึงข้อมูลลับสุดยอด

ความแตกต่างระหว่าง "ของแท้" และ "ได้รับอนุญาต" ทั้งสองตัวย่อเป็น "auth" อย่างช่วยไม่ได้ Apache แยกความแตกต่างด้วย "authn" และ "authz"
tc.

นี่เป็นคำอธิบายง่ายๆที่นี่: serverfault.com/a/57082/227016
Kuldeep Jain

สิ่งนี้ตอบคำถามของคุณหรือไม่? การพิสูจน์ตัวตนเทียบกับการอนุญาต
Løiten

คำตอบ:


141

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

  • ใครคือผู้ใช้?
  • ผู้ใช้เป็นผู้ที่พวกเขาอ้างว่าเป็นผู้ใช้จริงหรือ

ในทางตรงกันข้ามการอนุญาตเป็นกลไกที่ระบบกำหนดระดับการเข้าถึงที่ผู้ใช้ (พิสูจน์ตัวตน) เฉพาะที่ควรมีต่อทรัพยากรที่ควบคุมโดยระบบ สำหรับตัวอย่างที่อาจเกี่ยวข้องหรือไม่เกี่ยวข้องกับสถานการณ์จำลองบนเว็บระบบการจัดการฐานข้อมูลอาจได้รับการออกแบบมาเพื่อให้บุคคลที่ระบุบางรายสามารถดึงข้อมูลจากฐานข้อมูลได้ แต่ไม่สามารถเปลี่ยนแปลงข้อมูลที่จัดเก็บไว้ใน ฐานข้อมูลในขณะที่ให้บุคคลอื่นสามารถเปลี่ยนแปลงข้อมูลได้ ระบบการอนุญาตให้คำตอบสำหรับคำถาม:

  • ผู้ใช้ X ได้รับอนุญาตให้เข้าถึงทรัพยากร R หรือไม่
  • ผู้ใช้ X ได้รับอนุญาตให้ดำเนินการ P หรือไม่
  • ผู้ใช้ X ได้รับอนุญาตให้ดำเนินการ P บนทรัพยากร R หรือไม่

Steve Riley ได้เขียนเรียงความที่ค่อนข้างดีว่าทำไมพวกเขาจึงต้องมีความแตกต่าง


3
การรับรองความถูกต้องใช้กับสิ่งอื่นด้วย (เช่น MAC)
tc.

เรียงความที่คุณให้นั้นยอดเยี่ยมขอบคุณที่แบ่งปัน
Abdel-Raouf

43

การพิสูจน์ตัวตนหมายถึงการยืนยันตัวตนของเอนทิตี การอนุญาตจะเกี่ยวข้องกับสิ่งที่เอนทิตีที่ได้รับการรับรองความถูกต้องได้รับอนุญาตให้ทำได้ (เช่นสิทธิ์ของไฟล์)


12

ประเด็นหลักคือ:

  • การรับรองความถูกต้องเกี่ยวข้องกับการตรวจสอบบัญชีผู้ใช้ เป็นผู้ใช้ที่ถูกต้องหรือไม่ ผู้ใช้รายนี้ลงทะเบียนในแอปพลิเคชันของเราหรือไม่. เช่น: เข้าสู่ระบบ
  • การอนุญาตเกี่ยวข้องกับการตรวจสอบการเข้าถึงของผู้ใช้กับคุณสมบัติบางอย่าง ผู้ใช้รายนี้ได้รับอนุญาต / สิทธิ์ในการเข้าถึงคุณลักษณะนี้หรือไม่ เช่นการเรียกร้องบทบาท

5

การรับรองความถูกต้อง:

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

การอนุญาต:

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


2

จากประสบการณ์ของฉันการพิสูจน์ตัวตนมักจะอ้างถึงกระบวนการทางเทคนิคมากกว่าเช่นการพิสูจน์ตัวตนผู้ใช้ (โดยการตรวจสอบข้อมูลรับรองการเข้าสู่ระบบ / รหัสผ่านใบรับรอง ฯลฯ ) ในขณะที่การอนุญาตจะใช้มากกว่าใน Business Logic ของแอปพลิเคชัน

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


1

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

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


1

หากฉันสามารถเข้าสู่ระบบได้ข้อมูลรับรองของฉันจะได้รับการยืนยันและฉันได้รับการรับรองแล้ว ถ้าฉันสามารถทำงานบางอย่างได้ฉันได้รับอนุญาตให้ทำเช่นนั้น


1

การพิสูจน์ตัวตนยืนยันว่าคุณเป็นใครและการอนุญาตจะยืนยันสิ่งที่คุณได้รับอนุญาตให้ทำ ตัวอย่างเช่นคุณได้รับอนุญาตให้ล็อกอินเข้าสู่เซิร์ฟเวอร์ Unix ของคุณผ่านไคลเอนต์ ssh แต่คุณไม่ได้รับอนุญาตให้ใช้เบราว์เซอร์ / data2 หรือระบบไฟล์อื่นใด การอนุญาตเกิดขึ้นหลังจากการพิสูจน์ตัวตนสำเร็จ ........


0

การพิสูจน์ตัวตนยืนยันว่าคุณเป็นใครและการอนุญาตจะยืนยันสิ่งที่คุณได้รับอนุญาตให้ทำ ตัวอย่างเช่นคุณได้รับอนุญาตให้ล็อกอินเข้าสู่เซิร์ฟเวอร์ Unix ของคุณผ่านไคลเอนต์ ssh แต่คุณไม่ได้รับอนุญาตให้ใช้เบราว์เซอร์ / data2 หรือระบบไฟล์อื่นใด การอนุญาตเกิดขึ้นหลังจากการพิสูจน์ตัวตนสำเร็จ


0

การพิสูจน์ตัวตน: การตรวจสอบว่าผู้ใช้คือใคร

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

การอนุญาต:กำหนดสิ่งที่ผู้ใช้สามารถทำได้

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

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


0

การรับรองความถูกต้อง

การพิสูจน์ตัวตนยืนยันว่าคุณเป็นใคร ตัวอย่างเช่นคุณสามารถล็อกอินเข้าสู่เซิร์ฟเวอร์ของคุณโดยใช้ไคลเอนต์ ssh หรือเข้าถึงเซิร์ฟเวอร์อีเมลของคุณโดยใช้ไคลเอนต์ POP3 และ SMTP

การอนุญาต

การอนุญาตจะตรวจสอบสิ่งที่คุณได้รับอนุญาตให้ทำ ตัวอย่างเช่นคุณได้รับอนุญาตให้เข้าสู่ระบบเซิร์ฟเวอร์ของคุณผ่านไคลเอนต์ ssh แต่คุณไม่ได้รับอนุญาตให้ใช้เบราว์เซอร์ / data2 หรือระบบไฟล์อื่นใด การอนุญาตเกิดขึ้นหลังจากการพิสูจน์ตัวตนสำเร็จ


0

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

เซิร์ฟเวอร์ใช้การพิสูจน์ตัวตนเมื่อเซิร์ฟเวอร์ต้องการทราบว่าใครกำลังเข้าถึงข้อมูลหรือไซต์ของตน


0

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


0

ฉันได้พยายามสร้างภาพเพื่ออธิบายสิ่งนี้ด้วยคำที่ง่ายที่สุด

1) การรับรองความถูกต้องหมายถึง "คุณเป็นอย่างที่คุณพูดหรือไม่"

2) การอนุญาตหมายถึง "คุณควรจะสามารถทำในสิ่งที่คุณพยายามจะทำหรือไม่"

นอกจากนี้ยังอธิบายไว้ในภาพด้านล่าง

ป้อนคำอธิบายภาพที่นี่


2
ทำไมคุณต้องเพิ่มรูปภาพที่มี แต่ข้อความเดียวกับในโพสต์ของคุณ? :)
Millenjo

0

การรับรองความถูกต้อง :

เป็นกระบวนการตรวจสอบว่าข้อมูลประจำตัวเป็นจริงหรือเท็จ กล่าวอีกนัยหนึ่งคือการยืนยันว่าผู้ใช้เป็นผู้ที่อ้างว่าตัวเองเป็น

ประเภทการรับรองความถูกต้อง:

  1. ชื่อผู้ใช้ + รหัสผ่านประเภทการตรวจสอบสิทธิ์
  2. การรับรองความถูกต้องโดยใช้บัญชีโซเชียล
  3. การรับรองความถูกต้องโดยไม่ต้องใช้รหัสผ่าน
  4. การพิสูจน์ตัวตนแบบหลายปัจจัย
  5. การตรวจสอบลายนิ้วมือหรือเรตินาเป็นต้น

OpenIDเป็นมาตรฐานเปิดสำหรับการตรวจสอบสิทธิ์

การอนุญาต

เทคนิคที่กำหนดทรัพยากรที่สามารถเข้าถึงได้โดยผู้ใช้ที่มีเอกลักษณ์หรือบทบาทที่กำหนด

OAuthเป็นมาตรฐานเปิดสำหรับการอนุญาต


0

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

การอนุญาตคือการตรวจสอบว่าผู้ใช้สามารถเข้าถึงแอปพลิเคชันได้หรือไม่หรือผู้ใช้ใดสามารถเข้าถึงได้และผู้ใช้ใดไม่สามารถเข้าถึงได้ ที่มา: Authentcation Vs Authorization


0

เมื่อเทียบกับคำตอบที่เหลือซึ่งพยายามระบุคำจำกัดความหรือเทคโนโลยีอย่างชัดเจน ฉันจะส่งตัวอย่างที่มีค่ามากขึ้น

ต่อไปนี้เป็นบทความที่เปรียบเทียบได้ดีกับหนังสือเดินทางเมื่อเทียบกับกุญแจและกุญแจ

เมื่อพูดถึงการพิสูจน์ตัวตน (เรียกอีกอย่างว่า AuthN) ให้นึกถึงตัวตน การรับรองความถูกต้องพยายามที่จะตอบว่า“ คนนี้คือคนที่พวกเขาพูดหรือเปล่า” เป็นซอฟต์แวร์ที่เทียบเท่ากับหนังสือเดินทางหรือการตรวจสอบบัตรประจำตัวประชาชน หรือพูดให้ตรงตามความเป็นจริงมากขึ้นการพิสูจน์ตัวตนก็เป็นกระบวนการที่คล้ายกันกับช่วงเวลานั้นเมื่อคุณมองไปที่ใบหน้าของบุคคลอื่นเพื่อรับรู้ว่านี่คือเพื่อนของคุณจากวิทยาลัยไม่ใช่เพื่อนบ้านชั้นสองที่น่ารำคาญของคุณ

ในทางกลับกันการอนุญาต (หรือที่เรียกว่า AuthZ) เป็นข้อมูลเกี่ยวกับสิทธิ์ การให้สิทธิ์ตอบคำถาม“ บุคคลนี้ได้รับอนุญาตให้ทำอะไรในพื้นที่นี้” คุณอาจคิดว่าเป็นกุญแจบ้านหรือป้ายสำนักงาน เปิดประตูหน้าบ้านได้ไหม เพื่อนบ้านที่น่ารำคาญของคุณสามารถเข้าไปในอพาร์ตเมนต์ของคุณได้ตามต้องการหรือไม่? และอีกครั้งหนึ่งในอพาร์ตเมนต์ของคุณใครสามารถใช้ห้องน้ำได้บ้าง? ใครสามารถกินคุกกี้ลับที่ซ่อนอยู่ในตู้ครัวของคุณได้บ้าง?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.