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

626

Какая разница в контексте веб-приложений? Я часто вижу аббревиатуру "auth". Стоит ли за Идентый -entication или Идент -orization? Или это оба?

daGrevis
источник
51
помните это: проверка подлинности проверяет учетные данные, авторизация проверяет разрешения.
Онур Йылдырым
1
Межсайтовый дубликат: serverfault.com/q/57077
Kyll
Недавно для сокращений, которые я видел authnдля аутентификации и authzдля авторизации
jdf

Ответы:

865

Аутентификация - это процесс установления того, что кто-то действительно является тем, кем он себя считает.

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

Эти две концепции являются полностью ортогональными и независимыми, но обе являются центральными для проектирования безопасности, и неспособность получить хотя бы одно правильное решение открывает путь к компромиссу.

С точки зрения веб-приложений, очень грубо говоря, аутентификация - это когда вы проверяете учетные данные входа в систему, чтобы увидеть, распознаете ли вы пользователя, вошедшего в систему, а авторизация - когда вы просматриваете в своем контроле доступа, позволяете ли вы пользователю просматривать, редактировать, удалять или создать контент.

Керрек С.Б.
источник
32
Определения кажутся хорошими, но они, конечно, не кажутся независимыми. Как определено, авторизация также не подразумевает аутентификацию ? Как вы можете разрешить операцию удаления базы данных Адама , если вы сомневаетесь , что он является Адамом? Иными словами, если операция удаления Адама разрешена, то, надеюсь, это означает, что Адам прошел проверку подлинности.
Тимо
7
@Timo: приложение, вероятно, захочет сделать и то, и другое, но в любом случае это ортогональные понятия. Ваш начальник может просматривать разрешения сотрудников на доступ к важнейшим компонентам бизнеса, самолетам компании и холодильнику для пива, не беспокоясь о том, какой конкретный человек в канале видеонаблюдения совпадает с именами в электронной таблице. Последнее будет заботой охранника.
Керрек С.Б.
1
Понятия определенно ортогональны. Аутентификация не обязательно подтверждает вашу личность. Это может быть доказательство претензии о себе, например, возраст. Когда вы пьете, вы подтверждаете свой возраст, показывая удостоверение личности. Тогда вам может быть разрешено пить в зависимости от вашего возраста и юрисдикции, в которой вы находитесь (вы можете пить, если> 21 в США> 18 в Европе)
David Brossard
1
@Sinjai: Я думаю, что дело в том, что это ортогональные проблемы, и они могут быть решены с помощью отдельных средств: например, (доверенный) вышибала у двери может установить возраст клиента, и разные службы внутри учреждения могут иметь разный возраст пределы, но все будут использовать ценность, которую они получили от вышибалы, чтобы принять решения о приеме.
Kerrek SB
1
Еще один способ взглянуть на это (в контексте примера бара) состоит в том, чтобы учесть, что аутентификация - это процесс сопоставления фотографии на удостоверении личности с лицом, стоящим перед вами, тогда как авторизация - это процесс подтверждения того, что их возраст соответствует требованиям законодательства На мой взгляд, элемент в этой смеси, который вызывает размытие линий, заключается в том, что оба теста должны быть осведомлены и подделаны против подделки (это фальшивый идентификатор), который большинство людей склонны рассматривать как проблему только аутентификации чем одинаково важно как для аутентификации auth-c и auth-z.
Райан Хансен
660

Короче, пожалуйста. :-)

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

Авторизация = разрешения (что вам разрешено делать)

Короткое «auth», скорее всего, относится либо к первому, либо к обоим.

Geo
источник
3
Сладкий как кусок торта :)
devansvd
Мне нравится это, коротко и сладко.
король
5
Тогда я все еще не понимаю, почему заголовок HTTP-авторизации несет информацию об аутентификации ... Разве это не неудачное именование?
Йенс
@Jens Краткий ответ: да. Рой Филдинг не знал лучше в то время ... ;-) </ tongue-in-cheek>
Per Lundberg
@Jens, мне тоже интересно. Я нахожу интуицию этого ответа полезной. Поскольку HTTP не имеет состояния , информация об аутентификации должна отправляться вместе с каждым запросом, а не только с запуском и закрытием запросов (например, установление безопасного сеанса и отправка запросов без авторизации между ними). Следовательно, этот заголовок запроса должен быть авторизацией , потому что он почти всегда несет в себе другие намерения (выборка данных, img, ...), а не только аутентификацию .
Minh Nghĩa
83

Как говорит Аутентификация против авторизации :

Аутентификация - это механизм, с помощью которого системы могут безопасно идентифицировать своих пользователей. Системы аутентификации дают ответы на вопросы:

  • Кто такой пользователь?
  • Действительно ли пользователь является тем, кем он / она представляет себя?

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

  • Имеет ли пользователь X право доступа к ресурсу R?
  • Имеет ли пользователь X право выполнять операцию P?
  • Имеет ли пользователь X право выполнять операцию P на ресурсе R?

Смотрите также:

Себастьян Пааске Тёрхольм
источник
34

Я предпочитаю Проверку и Разрешения Аутентификации и Авторизации.

В моем коде и в моем коде легче думать о «проверке» и «разрешениях», потому что два слова

  • не похожи друг на друга
  • не иметь такое же сокращение

Аутентификация - это проверка, а авторизация проверяет разрешение (я). Auth может означать и то и другое, но чаще используется как «User Auth», то есть «User Authentication»

Адитья Миттал
источник
2
Похоже, что проверка IMHO имеет немного более открытую область, чем проверка подлинности, хотя проверка подлинности, по-видимому, является своего рода проверкой, не каждая проверка является проверкой подлинности ... поэтому я бы сказал, что всегда необходим контекст: проверка доступа пользователя и т. Д., Проверка подлинности кажется, всегда происходит в области "он действительно парень / машина?" (если я ошибаюсь, я не являюсь носителем языка, но: «убедитесь», что предоставленная ИНФОРМАЦИЯ является точной, а аутентификации, похоже, как-то связаны с осознанием того, что человек / машина является тем, кем он / она притворяется)
Beachwalker
14

Путаница понятна, поскольку два слова звучат одинаково, и поскольку понятия часто тесно связаны и используются вместе. Также, как уже упоминалось, часто используемое сокращение Auth не помогает.

Другие уже хорошо описали, что означают аутентификация и авторизация. Вот простое правило, помогающее четко разделить два элемента:

  • Auth енти катионом Подтверждает ваш Id енти ти (или подлинность , если вы предпочитаете)
  • Автор зации подтверждает вашу авторскую ность, т.е. ваше право на доступ и , возможно , изменить что - то.
Kjartan
источник
12

Я попытался создать изображение, чтобы объяснить это в самых простых словах

1) Аутентификация означает «Вы тот, кем вы говорите?»

2) Авторизация означает «Должны ли вы быть в состоянии делать то, что пытаетесь делать?».

Это также описано на изображении ниже.

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

Я попытался объяснить это в наилучших возможных терминах и создал изображение того же самого.

Рохит Айлани
источник
4

Аутентификация - это процесс проверки заявленной личности.

  • например, имя пользователя / пароль

Обычно сопровождается авторизацией , которая является подтверждением того, что вы можете делать то и это.

  • например, разрешения
Якуб Трухларж
источник
Этот ответ уже дан с глубоким объяснением.
Сону Патель
3

Добавление к ответу @ Kerrek;

Аутентификация является Обобщенной формой (Все сотрудники могут войти в систему на машине)

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

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

Аутентификация - это процесс проверки вашего логина по имени пользователя и паролю.

Авторизация - это процесс проверки того, что вы можете получить доступ к чему-либо.

Совичея Чет
источник
3
Этот «ответ» ничего не добавляет к уже полученным ответам.
Оджонугва Джуд Очалифу
1

Определения

Аутентификация - вы тот человек, на которого вы претендуете?

Авторизация. Вы уполномочены делать все, что пытаетесь?

пример

Веб-приложение использует Google Sign-In . После успешного входа в систему Google отправляет обратно:

  1. Токен JWT Это может быть проверено и декодировано для получения аутентификационной информации. Токен подписан Google? Какое имя пользователя и адрес электронной почты?
  2. Токен доступа. Это дает веб-приложению право доступа к API Google от имени пользователя. Например, может ли приложение получить доступ к событиям Календаря Google пользователя? Эти разрешения зависят от областей, которые были запрошены, и от того, разрешил ли пользователь это или нет.

Дополнительно:

Компания может иметь панель администратора, которая позволяет службе поддержки пользователей управлять пользователями компании. Вместо предоставления настраиваемого решения для регистрации, которое позволило бы службе поддержки клиентов получить доступ к этой панели, компания использует Google Sign-In.

Маркер JWT (полученный от процесса входа в Google) отправляется на сервер авторизации компании, чтобы выяснить, есть ли у пользователя учетная запись G Suite с размещенным доменом организации (email@company.com)? И если они это сделают, являются ли они членом группы Google компании, которая была создана для поддержки клиентов? Если да ко всем вышеперечисленным, мы можем считать их аутентифицированными .

Затем сервер авторизации компании отправляет приложению панели мониторинга токен доступа. Этот токен доступа может использоваться для выполнения авторизованных запросов к серверу ресурсов компании (например, возможность сделать запрос GET к конечной точке, которая отправляет обратно всем пользователям компании).

jabacchetta
источник
0

Authentication это процесс проверки:

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

Authorizationследующий шаг после Authentication. Речь идет о разрешениях / ролях / привилегиях для ресурсов. OAuth (открытая авторизация) является примером авторизации

yoAlex5
источник