Аутентификация против авторизации
Какая разница в контексте веб-приложений? Я часто вижу аббревиатуру "auth". Это означает аутентификацию или авторизацию? Или это оба?
17 ответов
Аутентификация - это процесс установления того, что кто-то действительно является тем, кем он себя называет.
Авторизация относится к правилам, которые определяют, кому и что разрешено делать. Например, Адаму может быть разрешено создавать и удалять базы данных, а Усаме разрешено только читать.
Эти две концепции являются полностью ортогональными и независимыми, но обе являются центральными для проектирования безопасности, и неспособность получить хотя бы одно правильное решение открывает путь к компромиссу.
С точки зрения веб-приложений, очень грубо говоря, аутентификация - это когда вы проверяете учетные данные для входа в систему, чтобы увидеть, распознаете ли вы пользователя, вошедшего в систему, а авторизация - когда вы просматриваете в своем контроле доступа, позволяете ли вы пользователю просматривать, редактировать, удалять или создать контент.
Короче, пожалуйста.:-)
Аутентификация = логин + пароль (кто вы)
Авторизация = разрешения (что вам разрешено делать)
Короткое "auth", скорее всего, относится либо к первому, либо к обоим.
Как говорит Аутентификация против авторизации:
Аутентификация - это механизм, с помощью которого системы могут безопасно идентифицировать своих пользователей. Системы аутентификации дают ответы на вопросы:
- Кто такой пользователь?
- Действительно ли пользователь является тем, кем он / она представляет себя?
Авторизация, напротив, представляет собой механизм, с помощью которого система определяет, какой уровень доступа должен иметь конкретный аутентифицированный пользователь к защищенным ресурсам, контролируемым системой. Например, система управления базой данных может быть спроектирована таким образом, чтобы предоставлять определенным указанным лицам возможность извлекать информацию из базы данных, но не изменять данные, хранящиеся в базе данных, в то же время предоставляя другим лицам возможность изменять данные. Системы авторизации дают ответы на вопросы:
- Пользователь X авторизован для доступа к ресурсу R?
- Имеет ли пользователь X право выполнять операцию P?
- Имеет ли пользователь X право выполнять операцию P на ресурсе R?
Смотрите также:
- Аутентификация против авторизации в Википедии
Я предпочитаю Проверку и Разрешения Аутентификации и Авторизации.
В моем коде и в моем коде легче думать о "проверке" и "разрешениях", потому что два слова
- не похожи друг на друга
- не иметь такое же сокращение
Аутентификация - это проверка, а авторизация проверяет разрешение (я). Auth может означать и то, и другое, но чаще используется как "User Auth", то есть "User Authentication"
Путаница понятна, так как два слова звучат одинаково, и поскольку понятия часто тесно связаны и используются вместе. Также, как уже упоминалось, сокращение Auth не помогает.
Другие уже хорошо описали, что означают аутентификация и авторизация. Вот простое правило, помогающее четко разделить два элемента:
- Аутентификация подтверждает вашу личность (или подлинность, если вы предпочитаете это)
- Авторизация подтверждает вашу авторитетность, то есть ваше право на доступ и, возможно, что-то изменить.
Я попытался создать изображение, чтобы объяснить это в самых простых словах
1) Аутентификация означает "Вы тот, кем вы говорите?"
2) Авторизация означает "Должны ли вы делать то, что пытаетесь делать?".
Это также описано на изображении ниже.
Я попытался объяснить это в наилучших возможных терминах и создал изображение того же самого.
Аутентификация - это процесс проверки заявленной личности.
- например, имя пользователя / пароль
Обычно сопровождается авторизацией, которая является подтверждением того, что вы можете делать то и это.
- например, разрешения
Добавление к ответу @Kerrek;
Аутентификация является Обобщенной формой (Все сотрудники могут войти в систему на машине)
Авторизация является специализированной формой (но только администратор может устанавливать / удалять приложение на компьютере)
Аутентификация - это процесс проверки вашего логина по имени пользователя и паролю.
Авторизация - это процесс проверки того, что вы можете получить доступ к чему-либо.
Определения
Аутентификация - вы тот человек, которым вы себя называете?
Авторизация - уполномочены ли вы делать то, что пытаетесь сделать?
пример
Веб-приложение использует вход через Google. После успешного входа пользователя Google отправляет обратно:
- Токен JWT. Это может быть проверено и декодировано для получения информации аутентификации. Подписан ли токен Google? Какое имя и адрес электронной почты пользователя?
- Токен доступа. Это разрешает веб-приложению доступ к API Google от имени пользователя. Например, может ли приложение получить доступ к событиям Календаря Google пользователя? Эти разрешения зависят от запрошенных областей и от того, разрешил ли это пользователь.
Дополнительно:
Компания может иметь панель администратора, которая позволяет службе поддержки управлять пользователями компании. Вместо предоставления настраиваемого решения для регистрации, которое позволит службе поддержки клиентов получить доступ к этой панели инструментов, компания использует вход через Google.
Токен JWT (полученный в процессе входа в Google) отправляется на сервер авторизации компании, чтобы выяснить, есть ли у пользователя учетная запись G Suite с размещенным доменом организации (email@company.com)? И если да, то входят ли они в группу Google компании, созданную для поддержки клиентов? Если да на все вышеперечисленное, мы можем считать их аутентифицированными.
Затем сервер авторизации компании отправляет приложению панели управления токен доступа. Этот токен доступа может использоваться для выполнения авторизованных запросов к серверу ресурсов компании (например, возможность сделать запрос GET к конечной точке, которая отправляет обратно всех пользователей компании).
Для более подробного ответа вот ссылка: https://www.okta.com/identity-101/authentication-vs-authorization/
Аутентификация - это процесс проверки личности объекта. Например
- Веб-сервер просит пользователя вводить логин / пароль каждый раз, чтобы убедиться, что пользователь, создавший учетную запись, имеет к ней доступ сейчас.
Авторизация - это процесс предоставления необходимого количества услуг / ресурсов каждому объекту. Например
- На сайте блогов (например, medium.com) пользователи могут создать учетную запись, написать сообщение и опубликовать его. И пользователи также могут читать все сообщения, опубликованные другими. Здесь сервер блогов сначала аутентифицирует пользователя с учетными данными пользователя (логин / пароль), а затем разрешает читать все другие сообщения и писать / изменять сообщение, созданное только пользователем. Здесь авторизация используется сервером, чтобы ограничить все сообщения, которые может изменять каждый пользователь.
- Пользователи могут создать бесплатную учетную запись Google, с помощью которой сервер Google предоставляет бесплатные услуги, такие как почта, календарь, чат, диски и т. Д. Но для всех этих услуг бесплатно предоставляется хранилище размером 15 ГБ (на данный момент). Пользователь может платить ежемесячную или годовую плату серверу Google, чтобы увеличить пространство для хранения. Здесь сервер Google разрешает каждому аутентифицированному пользователю ограничивать объем использования ресурсов.
В современном Интернете авторизация используется повсеместно.
Authentication
это процесс проверки:
- идентификация пользователя в системе (имя пользователя, логин, номер телефона, электронная почта...) путем предоставления подтверждения (секретный ключ, биометрия, sms...). Многофакторная аутентификация как расширение.
- проверка электронной почты с помощью
digital signature
- контрольная сумма
Authorization
это следующий шаг после Authentication
. Речь идет о разрешениях / ролях / привилегиях для ресурсов. OAuth (открытая авторизация) - пример авторизации
Аутентификация — это процесс проверки личности пользователя путем получения каких-либо учетных данных, например комбинации его имени пользователя и пароля, и использования этих учетных данных для проверки личности пользователя.
Авторизация — это процесс предоставления аутентифицированному пользователю доступа к своим ресурсам путем проверки наличия у пользователя прав доступа к системе. Вы можете контролировать права доступа, предоставляя или запрещая определенные разрешения аутентифицированному пользователю. Итак, если аутентификация прошла успешно, начинается процесс авторизации. Процесс аутентификации всегда переходит в процесс авторизации.
JWT, используемый для авторизации: JWT — это формат токена безопасности на основе JSON, который в основном представляет собой строку URL-адреса в кодировке base64, которая используется в качестве средства передачи защищенного содержимого между двумя приложениями. Они используются для защиты данных запроса в веб-API. Они включены в HTTP-заголовки авторизации как часть схемы аутентификации носителя.
OAuth предназначен для авторизации: OAuth — это не API или сервис: это открытый стандарт для авторизации, и любой может его внедрить. С помощью OAuth вы можете входить на сторонние веб-сайты со своими учетными записями Google, Facebook, Twitter или Microsoft без необходимости вводить свои пароли. Таким образом, вы можете избежать создания учетных записей и запоминания паролей для каждого веб-приложения, которое вы используете в Интернете.
Я обнаружил, что аналогия из этой статьи мне очень помогает.
Представьте себе человека, который подходит к запертой двери, чтобы позаботиться о домашнем животном, пока семья уезжает в отпуск. Этому человеку нужно:
- Аутентификация в виде ключа. Замок на двери предоставляет доступ только тем, у кого есть правильный ключ, почти так же, как система предоставляет доступ только тем пользователям, у которых есть правильные учетные данные.
- Авторизация в виде разрешений. Оказавшись внутри, человек имеет право войти на кухню и открыть шкаф, в котором хранится корм для домашних животных. У человека может не быть разрешения пойти в спальню для быстрого сна.
Короче говоря, аутентификация - это идентификация пользователя, а авторизация - это разрешение пользователя.
Представьте, что вы зарегистрировались на техническую конференцию. Вы приходите и подходите к столу для регистрации на улице, чтобы получить значок конференции. Сначала вы должны предъявить какой-либо документ, удостоверяющий личность, например, водительские права. Ваши водительские права идентифицируют вас (например, с вашей фотографией) и распространяются доверенным лицом (DMV). Это аутентификация.
Человек вручает вам ваш значок: красный, синий или зеленый. Прогуливаясь по конференции, некоторые экспонаты имеют цветовую маркировку. С зеленым значком вы можете войти на зеленые экспонаты, но не на синие или красные экспонаты. Значок не распространяется DMV - скорее, он распространяется самой конференцией для доступа к ресурсам конференции внутри конференц-зала.
В значке не обязательно что-то, что идентифицирует вас (на нем может быть напечатано ваше имя, но вы можете легко одолжить синий значок друга, чтобы посетить синюю выставку - никто не будет проверять ваше имя, только синий цвет). Цвет вашего значка дает вам доступ к выставкам. Это авторизация.
Аутентификация - это процесс идентификации действительного пользователя.
Авторизация - это процесс проверки уровня доступа пользователя.
Пример для приложения . Оба пользователя A и B аутентифицируют пользователя для приложения Inventory. Оба пользователя могут получить доступ к Stock, но B имеет больше полномочий для выдачи предметов.