Автентифікація проти авторизації


625

Яка різниця в контексті веб-додатків? Я бачу абревіатуру "auth" багато. Чи означає це аутентифікація або аутентифікація ? Або це обоє?


51
пам’ятайте це: автентифікація перевіряє облікові дані, дозволи авторизації перевіряє.
Onur Yıldırım

1
Міжсайтовий дублікат: serverfault.com/q/57077
Kyll

Нещодавно для скорочень, які я бачив authnдля автентифікації та authzдля авторизації
jdf

Чи відповідає це на ваше запитання? Чи є різниця між автентифікацією та авторизацією?
paxdiablo

Відповіді:


864

Автентифікація - це процес з’ясування того, що хтось насправді є тим, ким вони претендують.

Авторизація стосується правил, які визначають, кому дозволено щось робити. Наприклад, Адаму може бути дозволено створювати та видаляти бази даних, тоді як Usama має право лише читати.

Обидві концепції є повністю ортогональними та незалежними, але обидві мають центральне значення в дизайні безпеки, а неможливість отримати жодне правильне відкриває шлях до компромісу.

Що стосується веб-додатків, дуже грубо кажучи, автентифікація - це коли ви перевіряєте облікові дані для входу, щоб побачити, чи визнаєте ви користувача, який увійшов, а авторизація - це коли ви шукаєте в контролі доступу, чи дозволяєте ви користувачеві переглядати, редагувати, видаляти або створити вміст.


32
Визначення здаються прекрасними, але вони, звичайно, не здаються незалежними. Як визначено, чи авторизація також не передбачає аутентифікацію ? Як ви можете дозволити операцію видалення бази даних Адама, якщо ви сумніваєтесь, що він - Адам? Інакше кажучи, якщо операція видалення Адама дозволена, це, мабуть, означає, що Адам має автентифікацію.
Тимо

7
@Timo: Програма, ймовірно, захоче зробити і те, і інше, але вони є ортогональними поняттями незалежно. Ваш начальник може переглядати повноваження співробітників на доступ до критичних компонентів бізнесу, фірмового струменя та холодильника для пива, не турбуючись про те, яка конкретна особа на каналі відеоспостереження відповідає назвам у таблиці. Останнє буде турботою охоронця.
Керрек СБ

1
Поняття, безумовно, є ортогональними. Аутентифікація не обов'язково підтверджує вашу особу. Це може бути доказом себе, наприклад, віку. Коли ви п'єте, ви підтверджуєте свій вік, показуючи посвідчення особи. Тоді ви можете мати право пити, залежно від вашого віку та юрисдикції, де ви перебуваєте (ви можете пити, якщо> 21 у США> 18 у Європі)
David Brossard

1
@Sinjai: Я думаю, справа в тому, що це питання ортогональні, але вони можуть бути вирішені окремими засобами: наприклад, (довірений) відбійник у дверях може встановити вік клієнта, і різні послуги всередині закладу можуть мати різний вік обмеження, але всі вони використовуватимуть значення, яке вони отримали від вистрибувача, щоб прийняти рішення про вступ.
Керрек СБ

1
Ще один спосіб поглянути на це (у контексті прикладного залу) - це врахувати, що автентифікація - це процес узгодження фотографії на посвідченні особи з людиною, що стоїть перед вами, тоді як авторизація - це процес підтвердження того, що їх вік відповідає юридичним вимогам. На мою думку, елементом цієї суміші, що спричиняє розмиття рядків, є те, що обидва тести також повинні бути відомими та затвердженими проти підробки (це ідентифікація підробка), яку більшість людей, як правило, сприймають як проблему автентифікації ніж однаково важлива як для auth-c, так і для auth-z сертифікації.
Райан Хансен

660

Словом, будь ласка. :-)

Автентифікація = логін + пароль (хто ти такий)

Авторизація = дозволи (те, що вам дозволяється робити)

Короткий "аут", швидше за все, стосується або першого, або обох.


3
Солодкий, як шматок торта :)
devansvd

Мені це подобається, коротке і миле.
Король

5
Тоді я досі не розумію, чому заголовок авторизації HTTP містить інформацію про автентифікацію ... Хіба це не прикро?
Єнс

@Jens Коротка відповідь: так. Рой Філдінг на той час не знав кращого ... ;-) </tongue-in-
Пер Лундберг

@Jens Мені теж цікаво. Я вважаю , що інтуїція цієї відповіді корисна. Оскільки HTTP не має статусу , інформація про автентифікацію повинна надсилатися разом із кожним запитом, а не лише запитами на старт та закриття (наприклад, встановлення захищеного сеансу та надсилання запитів без авторизації між ними). Отже, цей заголовок запиту має бути авторизацією , оскільки він майже завжди несе в собі інші наміри (отримання даних, img, ...), а не лише автентифікацію .
Minh Nghĩa

83

Що стосується аутентифікації та авторизації :

Автентифікація - це механізм, за допомогою якого системи можуть безпечно ідентифікувати своїх користувачів. Системи аутентифікації дають відповіді на запитання:

  • Хто користувач?
  • Чи дійсно користувач тим, ким він / вона представляє себе?

Авторизація , навпаки, - це механізм, за допомогою якого система визначає, який рівень доступу конкретного аутентифікованого користувача повинен мати захищені ресурси, контрольовані системою. Наприклад, система управління базами даних може бути спроектована таким чином, щоб надати певним визначеним особам можливість отримувати інформацію з бази даних, але не можливість змінювати дані, що зберігаються в даті бази даних, надаючи іншим особам можливість змінювати дані. Системи авторизації надають відповіді на запитання:

  • Чи має право користувач X отримати доступ до ресурсу R?
  • Чи має право користувач X виконувати операцію P?
  • Чи має право користувач X виконувати операцію P на ресурсі R?

Дивись також:


34

Я віддаю перевагу перевірки та дозволів до аутентифікації та авторизації.

У моїй голові та в коді простіше думати про "перевірку" та "дозволи", бо це два слова

  • не звучать однаково
  • не мають однакової абревіатури

Автентифікація - це перевірка, а Авторизація перевіряє дозвіл (и). Auth може означати будь-яке, але використовується частіше як "Auth Autor", тобто "Автентифікація користувача"


2
Здається, перевірка IMHO має дещо відкритіший обсяг, ніж автентифікація, хоча автентифікація, здається, є якоюсь верифікацією, не кожна перевірка є автентифікацією ... тому я б сказав, що контекст завжди потрібен: перевірка доступу користувачів тощо, автентифікація Здається, завжди трапляється в області "чи він справді хлопець / машина?" (вдари мене, якщо я помиляюся, не носія мови, але: "перевірити" надана ІНФОРМАЦІЯ точна проти автентифікації, здається, має щось спільне з тим, щоб знати, що людина / машина - це той, на кого він / хто претендує)
Beachwalker

14

Плутанина зрозуміла, оскільки два слова звучать схоже, а оскільки поняття часто тісно пов'язані та використовуються разом. Також, як згадувалося, поширена абревіатура Auth не допомагає.

Інші вже добре описали, що означає автентифікація та авторизація. Ось просте правило, яке допомагає чітко розставити обоє:

  • Auth енти катионом Підтверджує ваш Id енти ти (або справжність , якщо ви віддаєте перевагу)
  • Авторське підтвердження підтверджує ваш авторський ідентифікатор, тобто ваше право доступу та, можливо, щось змінити.

12

Я спробував створити образ, щоб пояснити це найпростішими словами

1) Автентифікація означає "Ти такий, кого ти кажеш, що є?"

2) Авторизація означає "Чи маєте ви мати можливість робити те, що ви намагаєтесь зробити?".

Це також описано на зображенні нижче.

введіть тут опис зображення

Я намагався пояснити це найкращим чином, і створив образ того самого.


4

Автентифікація - це процес перевірки заявленої особи.

  • наприклад, ім’я користувача / пароль

Зазвичай слідує авторизація , яка є схваленням того, що ви можете робити це і те.

  • наприклад, дозволи

Ця відповідь дається вже з глибоким поясненням.
Sonu patel

3

Додавання до відповіді @ Керрека;

Аутентифікація - це узагальнена форма (усі працівники можуть увійти до машини)

Авторизація - це спеціалізована форма (але адміністратор може встановлювати / видаляти програму лише на машині)


1
Слово "може" стосується лише Авторизації. Аутентифікація мало або нічого спільного з входом у систему. Я дуже міг би підтвердити, що ви Boobalan багатьма способами (не лише ім'ям користувача / паролем). Після того, як я засвідчу автентифікацію та дізнаюся, хто ти є, я міг би НЕ дозволити тобі ввійти або зробити щось на своєму сайті. Ви автентифіковані, але не можете робити дидлі-присідання. Використовувати слово "може", коли ви говорите про автентифікацію, заплутане та некоректно
Суамер

3

Аутентифікація - це процес підтвердження Вашого логіна імені користувача та пароля.

Авторизація - це процес підтвердження того, що ви можете отримати доступ до чогось.


3
Ця "відповідь" нічого не додає до вже наданих відповідей.
Ojonugwa Jude Ochalifu

1

Визначення

Аутентифікація - Ви є особою, якою Ви претендуєте?

Авторизація - Ви маєте право робити все, що ви намагаєтесь зробити?

Приклад

Веб-додаток використовує вхід у Google . Після успішного входу користувача Google надсилає назад:

  1. Маркер JWT. Це можна перевірити і розшифрувати, щоб отримати інформацію про автентифікацію . Чи маркер підписаний Google? Що таке ім’я та адреса користувача?
  2. Маркер доступу. Це дає право веб-додатку отримувати доступ від API Google від імені користувача. Наприклад, чи може програма отримувати доступ до подій Google Календар Google? Ці дозволи залежать від сфери застосування, яку ви запитували, і від того, чи дозволив це користувач.

Додатково:

У компанії може бути адміністративна панель управління, яка дозволяє підтримці клієнтів керувати користувачами компанії. Замість надання спеціального рішення для реєстрації, яке дозволило б підтримці клієнтів отримати доступ до цієї інформаційної панелі, компанія використовує вхід у Google.

Маркер JWT (отриманий від процесу входу в Google) надсилається на сервер авторизації компанії, щоб з'ясувати, чи є у користувача обліковий запис G Suite з розміщеним доменом організації (email@company.com)? А якщо це так, чи є вони членом групи компаній Google, створеної для підтримки клієнтів? Якщо так усього згаданого, ми можемо вважати їх автентичними .

Потім сервер авторизації компанії надсилає додаток інформаційної панелі маркер доступу. Цей маркер доступу може використовуватися для надсилання авторизованих запитів на сервер ресурсів компанії (наприклад, можливість подати GET-запит до кінцевої точки, що надсилає назад всіх користувачів компанії).


0

Authentication це процес перевірки:

  • ідентифікація користувача в системі (ім’я користувача, логін, номер телефону, електронна адреса ...), надаючи підтвердження (секретний ключ, біометричні дані, смс ...). Багатофакторна аутентифікація як розширення.
  • перевірка електронної пошти за допомогою digital signature
  • контрольна сума

Authorizationце наступний крок після Authentication. Йдеться про дозволи / ролі / привілеї до ресурсів. OAuth (Open Authorization) - приклад авторизації

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.