Xác thực so với ủy quyền


626

Sự khác biệt trong bối cảnh của các ứng dụng web là gì? Tôi thấy chữ viết tắt "auth" rất nhiều. Liệu nó có nghĩa là auth -entication hoặc auth -orization? Hay là cả hai?


51
hãy nhớ điều này: xác thực kiểm tra thông tin đăng nhập, ủy quyền kiểm tra quyền.
Onur Yıldırım

1
Sao chép chéo trang: serverfault.com/q/57077
Kyll

Gần đây cho các chữ viết tắt mà tôi đã thấy authnđể xác thực và authzủy quyền
jdf

Điều này có trả lời câu hỏi của bạn không? Có sự khác biệt giữa xác thực và ủy quyền?
paxdiablo

Câu trả lời:


865

Xác thực là quá trình xác định rằng ai đó thực sự là người mà họ tuyên bố là.

Ủy quyền đề cập đến các quy tắc xác định ai được phép làm những gì. Ví dụ: Adam có thể được ủy quyền để tạo và xóa cơ sở dữ liệu, trong khi Usama chỉ được phép đọc.

Hai khái niệm này hoàn toàn trực giao và độc lập, nhưng cả hai đều là trung tâm của thiết kế bảo mật và việc không có một chính xác nào sẽ mở ra con đường để thỏa hiệp.

Về mặt ứng dụng web, nói một cách thô sơ, xác thực là khi bạn kiểm tra thông tin đăng nhập để xem bạn có nhận ra người dùng đã đăng nhập hay không và ủy quyền là khi bạn tra cứu trong điều khiển truy cập của mình xem bạn có cho phép người dùng xem, chỉnh sửa, xóa không hoặc tạo nội dung.


32
Các định nghĩa có vẻ tốt, nhưng chúng chắc chắn không độc lập. Theo quy định, không ủy quyền cũng ngụ ý xác thực ? Làm thế nào bạn có thể cho phép hoạt động xóa cơ sở dữ liệu của Adam nếu bạn nghi ngờ rằng anh ta Adam? Nói cách khác, nếu thao tác xóa của Adam được ủy quyền, hầu hết đều hy vọng rằng Adam được xác thực.
Timo

7
@Timo: Một ứng dụng có thể muốn thực hiện cả hai, nhưng chúng là các khái niệm trực giao bất kể. Sếp của bạn có thể đang xem xét ủy quyền của nhân viên để truy cập các thành phần quan trọng của doanh nghiệp, máy bay phản lực của công ty và tủ lạnh bia mà không cần quan tâm đến cá nhân cụ thể nào trên nguồn cấp dữ liệu camera quan sát khớp với tên trong bảng tính. Sau này sẽ là mối quan tâm của nhân viên bảo vệ.
Kerrek SB

1
Các khái niệm chắc chắn là trực giao. Xác thực không nhất thiết phải chứng minh danh tính của bạn. Nó có thể chứng minh một tuyên bố về bản thân bạn, ví dụ như tuổi tác. Khi bạn uống, bạn xác thực tuổi của mình bằng cách hiển thị ID. Sau đó, bạn có thể được phép uống tùy thuộc vào độ tuổi và quyền tài phán của bạn (bạn có thể uống nếu> 21 ở Mỹ> 18 ở Châu Âu)
David Brossard

1
@Sinjai: Tuy nhiên, tôi nghĩ rằng vấn đề là những mối quan tâm trực giao và chúng có thể được giải quyết bằng các cơ sở riêng biệt: ví dụ: bouncer (đáng tin cậy) ở cửa có thể thiết lập độ tuổi của khách hàng và các dịch vụ khác nhau trong cơ sở có thể có độ tuổi khác nhau giới hạn, nhưng tất cả sẽ sử dụng giá trị họ nhận được từ bouncer để đưa ra quyết định nhập học.
Kerrek SB

1
Một cách khác để xem xét nó (trong bối cảnh của ví dụ về phòng bar) sẽ xem xét xác thực đó là quá trình khớp ảnh trên thẻ ID với người đứng trước mặt bạn trong khi ủy quyền là quá trình xác thực tuổi của họ đáp ứng yêu cầu pháp lý. Theo tôi, yếu tố trong hỗn hợp này làm cho các dòng bị mờ là cả hai bài kiểm tra cũng phải vừa nhận thức vừa cứng đối với sự giả mạo (là ID giả) mà hầu hết mọi người có xu hướng chỉ xem là mối quan tâm của xác thực quan trọng hơn cả đối với cả chứng nhận auth-c và auth-z.
Ryan Hansen

660

Tóm lại, làm ơn. :-)

Xác thực = đăng nhập + mật khẩu (bạn là ai)

Ủy quyền = quyền (những gì bạn được phép làm)

"Auth" ngắn rất có thể đề cập đến cái đầu tiên hoặc cả hai.


3
Ngọt ngào như một miếng bánh :)
devansvd

Tôi thích điều này, ngắn và ngọt ngào.
Vua

5
Sau đó, tôi vẫn không hiểu tại sao tiêu đề Ủy quyền HTTP mang thông tin xác thực. Không phải là đặt tên không may sao?
Jens

@Jens Câu trả lời ngắn gọn: có. Roy Fielding không biết rõ hơn vào thời điểm đó ... ;-) </ tặc lưỡi>
Per Lundberg

@ Jens Tôi cũng đang tự hỏi điều đó. Tôi thấy trực giác của câu trả lời này hữu ích. Vì HTTP không trạng thái , thông tin xác thực phải được gửi cùng với mọi yêu cầu, không chỉ là yêu cầu bắt đầu và kết thúc (như, thiết lập phiên bảo mật và gửi yêu cầu mà không cần xác thực ở giữa). Do đó, tiêu đề yêu cầu đó phải được ủy quyền , vì nó hầu như luôn mang các ý định khác (lấy dữ liệu, img, ...), không chỉ xác thực .
Minh Nghĩa

83

Như Xác thực vs Ủy quyền đặt nó:

Xác thực là cơ chế theo đó các hệ thống có thể xác định an toàn người dùng của họ. Hệ thống xác thực cung cấp câu trả lời cho các câu hỏi:

  • Ai là người dùng?
  • Người dùng có thực sự là người mà anh ấy / cô ấy thể hiện?

Ngược lại, ủy quyền là cơ chế trong đó một hệ thống xác định mức độ truy cập mà người dùng được xác thực cụ thể phải có để bảo đảm các tài nguyên do hệ thống kiểm soát. Ví dụ, một hệ thống quản lý cơ sở dữ liệu có thể được thiết kế để cung cấp cho một số cá nhân được chỉ định khả năng truy xuất thông tin từ cơ sở dữ liệu nhưng không có khả năng thay đổi dữ liệu được lưu trữ trong cơ sở dữ liệu, đồng thời cho các cá nhân khác khả năng thay đổi dữ liệu. Hệ thống ủy quyền cung cấp câu trả lời cho các câu hỏi:

  • Người dùng X có được phép truy cập tài nguyên R không?
  • Người dùng X có được phép thực hiện thao tác P không?
  • Người dùng X có được phép thực hiện thao tác P trên tài nguyên R không?

Xem thêm:


34

Tôi thích Xác minhQuyền đối với Xác thực và Ủy quyền.

Trong đầu và mã của tôi dễ dàng hơn khi nghĩ đến "xác minh" và "quyền" vì hai từ

  • không giống nhau
  • không có cùng tên viết tắt

Xác thực là xác minh và Ủy quyền đang kiểm tra (các) quyền. Auth có thể có nghĩa, nhưng được sử dụng thường xuyên hơn là "Xác thực người dùng" tức là "Xác thực người dùng"


2
Xác minh IMHO dường như có phạm vi mở hơn một chút so với xác thực, mặc dù xác thực dường như là một loại xác minh, nhưng không phải mọi xác minh đều là xác thực ... vì vậy tôi sẽ nói rằng luôn cần một bối cảnh: xác thực quyền truy cập của người dùng, v.v. dường như luôn luôn xảy ra trong lĩnh vực "anh ấy thực sự là anh chàng / máy móc?" (đánh tôi nếu tôi sai, không phải là người bản ngữ, nhưng: "xác minh" THÔNG TIN được cung cấp là chính xác so với xác thực dường như có liên quan đến việc biết người / máy là người mà anh ta giả vờ)
Beachwalker

14

Sự nhầm lẫn là dễ hiểu, vì hai từ nghe có vẻ giống nhau, và vì các khái niệm thường liên quan chặt chẽ và được sử dụng cùng nhau. Ngoài ra, như đã đề cập, Auth viết tắt thường được sử dụng không giúp đỡ.

Những người khác đã mô tả tốt những gì xác thực và ủy quyền có nghĩa. Đây là một quy tắc đơn giản để giúp hai người tách biệt rõ ràng:

  • Auth enti cation xác nhận Id của bạn enti ty (hoặc tính xác thực , nếu bạn thích đó)
  • Tác giả ization xác nhận tác giả của bạn ity, tức là quyền truy cập của bạn và có thể thay đổi một cái gì đó.

12

Tôi đã cố gắng tạo ra một hình ảnh để giải thích điều này bằng những từ đơn giản nhất

1) Xác thực có nghĩa là "Bạn có phải là người bạn nói không?"

2) Ủy quyền có nghĩa là "Nếu bạn có thể làm những gì bạn đang cố gắng làm?".

Điều này cũng được mô tả trong hình ảnh dưới đây.

nhập mô tả hình ảnh ở đây

Tôi đã cố gắng giải thích nó theo cách tốt nhất có thể, và tạo ra một hình ảnh giống nhau.


4

Xác thực là quá trình xác minh danh tính được công bố.

  • ví dụ: tên người dùng / mật khẩu

Thường được theo sau bởi ủy quyền , đó là sự chấp thuận rằng bạn có thể làm điều này và điều đó.

  • ví dụ: quyền

Câu trả lời này đã được đưa ra với lời giải thích sâu sắc.
Sonu patel

3

Thêm vào câu trả lời của @ Kerrek;

Xác thực là dạng Tổng quát (Tất cả nhân viên có thể đăng nhập vào máy)

Ủy quyền là hình thức Chuyên biệt (Nhưng quản trị viên chỉ có thể cài đặt / gỡ cài đặt ứng dụng trong Máy)


1
Từ "có thể" chỉ áp dụng cho Ủy quyền. Xác thực có ít hoặc không có gì để đăng nhập. Tôi rất có thể Xác thực rằng bạn là Boobalan theo nhiều cách (Không chỉ tên người dùng / mật khẩu). Khi tôi xác thực và biết bạn là ai, tôi rất có thể KHÔNG cho phép bạn đăng nhập hoặc làm bất cứ điều gì trên trang web của tôi. Bạn được xác thực, nhưng bạn không thể tập diddley-squat. Thật khó hiểu và không chính xác khi sử dụng từ "có thể" khi nói về Xác thực.
Suamere 20/03/2015

3

Xác thực là quá trình xác minh tên đăng nhập và mật khẩu của bạn.

Ủy quyền là quá trình xác minh rằng bạn có thể truy cập vào một cái gì đó.


3
"Câu trả lời" này không thêm bất cứ điều gì vào câu trả lời đã được đưa ra.
Ojonugwa Jude Ochalifu

1

Định nghĩa

Xác thực - Bạn có phải là người bạn tuyên bố?

Ủy quyền - Bạn có được phép làm bất cứ điều gì mà bạn đang cố gắng làm không?

Thí dụ

Một ứng dụng web sử dụng Đăng nhập Google . Sau khi người dùng đăng nhập thành công, Google sẽ gửi lại:

  1. Mã thông báo JWT. Điều này có thể được xác nhận và giải mã để có được thông tin xác thực . Là mã thông báo có chữ ký của Google? Tên và email của người dùng là gì?
  2. Một mã thông báo truy cập. Điều này cho phép ứng dụng web truy cập Google API thay mặt cho người dùng. Ví dụ: ứng dụng có thể truy cập các sự kiện Lịch Google của người dùng không? Các quyền này phụ thuộc vào phạm vi được yêu cầu và liệu người dùng có cho phép hay không.

Ngoài ra:

Công ty có thể có bảng điều khiển quản trị viên cho phép hỗ trợ khách hàng quản lý người dùng của công ty. Thay vì cung cấp giải pháp đăng ký tùy chỉnh cho phép hỗ trợ khách hàng truy cập bảng điều khiển này, công ty sử dụng Đăng nhập Google.

Mã thông báo JWT (nhận được từ quá trình đăng nhập Google) được gửi đến máy chủ ủy quyền của công ty để tìm hiểu xem người dùng có tài khoản G Suite với tên miền được lưu trữ của tổ chức không (email@company.com)? Và nếu có, họ có phải là thành viên của Nhóm Google của công ty được tạo để hỗ trợ khách hàng không? Nếu có cho tất cả những điều trên, chúng ta có thể xem xét chúng được chứng thực .

Sau đó, máy chủ ủy quyền của công ty sẽ gửi cho ứng dụng bảng điều khiển một mã thông báo truy cập. Mã thông báo truy cập này có thể được sử dụng để thực hiện các yêu cầu được ủy quyền đến máy chủ tài nguyên của công ty (ví dụ: khả năng thực hiện yêu cầu GET đến điểm cuối gửi lại tất cả người dùng của công ty).


0

Authentication là một quá trình xác minh:

  • danh tính người dùng trong một hệ thống (tên người dùng, đăng nhập, số điện thoại, email ...) bằng cách cung cấp bằng chứng (khóa bí mật, sinh trắc học, sms ...). Xác thực đa yếu tố như một phần mở rộng.
  • kiểm tra email bằng cách sử dụng digital signature
  • tổng kiểm tra

Authorizationlà bước tiếp theo sau Authentication. Đó là về quyền / vai trò / đặc quyền đối với tài nguyên. OAuth (Ủy quyền mở) là một ví dụ về Ủy quyền

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.