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


626

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


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», скорее всего, относится либо к первому, либо к обоим.


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 енти ти (или подлинность , если вы предпочитаете)
  • Автор зации подтверждает вашу авторскую ность, т.е. ваше право на доступ и , возможно , изменить что - то.

12

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

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

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

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

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

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


4

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

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

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

  • например, разрешения

Этот ответ уже дан с глубоким объяснением.
Сону Патель

3

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

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

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


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 к конечной точке, которая отправляет обратно всем пользователям компании).


0

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.