Авторизация — процесс предоставления пользователю или группе пользователей определенных разрешений, прав доступа и привилегий в компьютерной системе.
Разница между авторизацией, аутентификацией и идентификацией
Авторизацию не следует путать с идентификацией и аутентификацией пользователя. Она происходит по завершении этих процессов.
Допустим, пользователь хочет получить доступ к определенному документу в корпоративном облаке. Сначала он вводит логин от своего аккаунта, и система проверяет, есть ли такой логин в ее базе данных. Это идентификация.
Если логин существует, система запросит у пользователя пароль, вычислит для него хеш и проверит, совпадает ли он с хешем в базе данных. Это аутентификация.
Если логин и пароль верные, система проверит, имеет ли этот пользователь право читать и изменять запрашиваемый документ, и в случае успеха предоставит ему доступ к файлу. Это авторизация.
Некоторые сервисы спрашивают логин и пароль одновременно, однако они все равно сначала идентифицируют пользователя, а потом, если он успешно прошел проверку, переходят к аутентификации. Для пользователя момент перехода от идентификации к аутентификации в этом случае незаметен.
Авторизация возможна и без идентификации (и аутентификации). Например, сервис может предусматривать, что пользователи, которые не ввели логин и пароль, по умолчанию получают какой-то набор прав — скажем, на чтение документов без возможности правки.
Виды авторизации
Существует несколько моделей авторизации. Три основные — ролевая, избирательная и мандатная.
- Ролевая модель. Администратор назначает пользователю одну или несколько ролей, а уже им выдает разрешения и привилегии. Эта модель применяется во многих прикладных программах и операционных системах.
Например, все пользователи с ролью «Кассир» имеют доступ к кассовым операциям в бухгалтерской системе, а пользователи с ролью «Товаровед» — нет, зато у них есть доступ к складским операциям, при этом обе роли имеют доступ к общей ленте новостей.
- Избирательная модель. Права доступа к конкретному объекту выдают конкретному пользователю. При этом право определять уровень доступа имеет либо владелец конкретного объекта (например, его создатель), либо суперпользователь (по сути, владелец всех объектов в системе). Кроме того, пользователь, обладающий определенным уровнем доступа, может передавать назначенные ему права другим.
Например, пользователь А, создав текстовый файл, может назначить пользователю Б права на чтение этого файла, а пользователю В — права на его чтение и изменение. При этом пользователи Б и В могут передать свои права пользователю Г.
Избирательная модель применяется в некоторых операционных системах, например в семействах Windows NT (в том числе в Windows 10) и Unix. По этой же модели предоставляется доступ, скажем, к документам на диске Google.
- Мандатная модель. Администратор назначает каждому элементу системы определенный уровень конфиденциальности. Пользователи получают уровень доступа, определяющий, с какими объектами они могут работать. Обычно такая модель является иерархической, то есть высокий уровень доступа включает в себя права на работу и со всеми младшими уровнями.
Мандатная модель авторизации применяется в системах, ориентированных на безопасность, и чаще всего она используется для организации доступа к гостайне и в силовых ведомствах.
Например, в организации может быть пять уровней доступа. Пользователь, имеющий доступ к файлам 3-го уровня, может также открывать файлы 1-го и 2-го уровня, но не может работать с файлами 4-го и 5-го уровня.