Идентификация, аутентификация, авторизация / Новичкам / PKI Guru

Что такое аутентификация

Аутентификация представляет собой процедуру подтверждения подлинности.

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

  • Пароль – это введенное при регистрации слово, выданный графический ключ либо PIN-код.
  • Механизм – в качестве такого устройства может быть использована карточка либо USB-ключ.
  • Биометрика – это сетчатка глаза, отпечаток пальца, голос либо фото.

https://www.youtube.com/watch?v=44TCi7O_oPk

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

Что такое авторизация

И последнее, что необходимо знать о входе на сайт – это авторизация.

Данная процедура подразумевает попадание на страницу в случае успешного прохождения аутентификации и идентификации.

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

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

  1. Идентификация.
  2. Аутентификация.
  3. Авторизация.

Что такое аутентификация?

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

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

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

Что такое идентификация

Это еще одна из встроенных функций для входа на сервис либо в приложение.

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

Основные поля

Кратко остановимся на том, какие есть стандартные полях в токене и зачем они нужны:

Forms authentication

Идентификация, аутентификация, авторизация / Новичкам / PKI Guru

Token authentication

Идентификация, аутентификация, авторизация / Новичкам / PKI Guru

Следующее поколение способов аутентификации представляет Token Based Authentication, который обычно применяется при построении систем Single sign-on (SSO). При его использовании запрашиваемый сервис делегирует функцию проверки достоверности сведений о пользователе другому сервису. Т. е. провайдер услуг доверяет выдачу необходимых для доступа токенов собственно токен-провайдеру (Identity provider).

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

Похожее:  Авторизация через ВКонтакте, и другие — 3 (ВКонтакте и OAuth) / Хабр

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

На следующей схеме дополнительно отражены те этапы взаимодействия, в которых пользователь принимает непосредственное участие. Этот момент и является недостатком подобной схемы — нам всегда нужен пользователь, чтобы получить доступ к ресурсу.
Идентификация, аутентификация, авторизация / Новичкам / PKI Guru

Взгляд сверху

Picture7

Обычно в системах встречаются разные компоненты: пользователи, работающие через браузер, пользователи, взаимодействующие с сервером через мобильные приложения, и просто серверные приложения, нуждающиеся в принадлежащих вам данных, хранящихся на других серверах, доступ к которым осуществляется через Web API.

Двухфакторная аутентификация 2fa

Двухфакторная аутентификация является одним из вариантов идентификации пользователя.

Используется в различных сервисах, чаще всего, это интернет-ресурсы, связанные с важной информацией либо с приложениями (сайтами), где можно проводить денежные операции.

Двухфакторная Аутентификация подразумевает высший уровень защиты и состоит из таких этапов:

Запрос на аутентификацию

Authentication/Token Request — процесс запроса аутентификации.

В зависимости от того какие области (scopes) запрошены, сервис выдачи токенов вернет:

  1. Только Identity Token, если запрошены только Identity scopes.
  2. Identity Token и Access Token, если запрошены также и Resources scopes.
  3. Access Token и Refresh Token, если запрошeн Offline Access.

Более подробно про процесс аутентификации можно прочесть в разделе «

Идентификация, аутентификация, авторизация / новичкам / pki guru

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

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

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

Идентификация — это процесс опознания, определения объекта по его свойствам.

Аутентификация — это процесс подтверждения подлинности объекта. Подтверждение подлинности осуществляется с помощью какого-либо уникального значения или свойства объекта.

Авторизация — это процесс проверки прав на доступ и предоставление доступа — после того как объект/пользователь/компьютер/сервис был идентифицирован или аутентифицирован, он может запросить доступ к каким-либо ресурсам.

При «входе в компьютер» мы проходим все три процесса, описанные выше:

  • Идентификация — мы указываем свой логин для входа, при этом будет осуществлена проверка, существует ли такой пользователь. Если пользователь существует, то его необходимо аутентифицировать.
  • Аутентификация — мы указываем свой пароль, если пароль верный, то пользователь аутентифицирован и мы получаем возможность входа в систему. Если влезать более глубоко, то после проверки пароля, так же происходит механизм авторизации, имеет ли право аутентифицированный пользователь входить в систему. Например, на контроллере домена Windows Active Directory, Вы, по умолчанию, не сможете войти в систему локально, если пользователь не входит в группу Доменные Администраторы. То есть в данном примере пользователь будет идентифицирован и аутентифицирован (введены верные имя пользователя и пароль), но не будет авторизован (нет прав для локального входа на контроллер домена).
  • Авторизация — мы пытаемся открыть файл, если нам даны права на только чтение файла, то мы его сможем открыть и прочитать. Но записать какие-либо изменения в файл мы не сможем, так как мы не авторизированы на запись в файл
Похожее:  СКБ-банк онлайн личный кабинет: вход и регистрация физических лиц

Отдельно эти процессы встречаются редко.

Обычно после процесса идентификации или авторизации идёт процесс авторизации.

Например, Вы приходите в офис, прикладываете электронный пропуск к считывателю, и система опознаёт Ваш пропуск (идентифицирует). После этого система определяет, имеете ли Вы право входить в офис или нет, в случае если имеете, то дверь откроется (вы авторизованы).

Надеюсь, у меня получилось пояснить разницу и взаимосвязь понятий идертификация, аутентификация и авторизация.

Не путайте их, пожалуйста…

Какие могут быть ошибки

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

  • В первую очередь, проверьте, правильно ли вы написали ключевую фразу, далее посмотрите, не активирована ли на клавиатуре клавиша Caps Lock (печать большими буквами). Если причины не в этом, то, скорее всего, неверно введен пароль.
  • Если вы не помните свой пароль, то его можно посмотреть в настройках к вайфай-роутеру.

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

  • Итак, вы проверили правильность указанных данных, учитывая язык и размер букв.

Будьте внимательны при вводе, очень часто, если ввод данных засекречен звездочками сложно понять, что вы делаете не так.

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

Клиент

Client — устройство или программа (браузер, приложение), которым требуется либо токен для аутентификации пользователя, либо токен для доступа к какому-то ресурсу (подразумевается, что данный ресурс «знаком» с тем конкретным «

» у которого клиент запрашивает токен для доступа).

Область (scope)


Scope — идентификатор ресурса, к которому клиент хочет получить доступ. Список scope посылается в адрес

в составе

Похожее:  Проект OpenNet: MAN login (1) Команды и прикладные программы пользовательского уровня (FreeBSD и Linux)

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

Scopes бывают двух видов:

  1. Identity scopes — это запрос информации о пользователе. Его имя, профиль, пол, фотография, адрес электронной почты и т. д.
  2. Resource scopes — имена внешних ресурсо (Web APIs), к которым клиент хочет получить доступ.

Процесс аутентификации

Picture9

Разбираемся детально ху из ху


В данный момент на слуху следующие протоколы:

  1. OpenID — для проверки учетных данных пользователя (identification & authentication).
  2. OAuth — про то, чтобы получать доступ к чему-то.
  3. OpenID Connect — и про и то, и про другое одновременно.

Сервис выдачи токенов

Open ID Connect Provider — важнейший объект всей конструкции централизованного сервиса аутентификации, он также может называться Security Token Service, Identity Provider authorization server и т. д. Различные источники называют его по-разному, но по смыслу это сервис, который выдает токены клиентам.

Основные функции:

Токен доступа

Access Token — информация, что конкретному пользователю разрешается делать. Клиент запрашивает Access Token и затем использует его для доступа к ресурсам (Web APIs). Access Token содержит информацию о клиенте и пользователе, если она присутствует. Важно понимать, что есть такие типы авторизации, при которых пользователь в процессе непосредственно не участвует (подробнее об этом в следующей части)

Токен личности

Identity Token — подтверждение аутентификации. Этот токен содержит минимальный набор информации о пользователе.

Токен обновления

Refresh Token — токен, по которому STS вернет новый Access Token. В зависимости от режима работы, Refresh Token может быть многоразовым и одноразовым. В случае с одноразовым токеном, при запросе нового Access Token будет также сформирован готовый Refresh Token, который следует использовать при повторном обновлении. Очевидно, что одноразовые токены более безопасны.

Более подробно о составе токенов в разделе «структура токена».

Формат

Picture10

Заключение первой части

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

Stay tuned.

Спойлер второй части

Минимальная реализация интеграция Identity Server в ваше приложение выглядит так:

public void Configuration(IAppBuilder app)
{
    var factory = new IdentityServerServiceFactory();
    factory.UseInMemoryClients(Clients.Get())
           .UseInMemoryScopes(Scopes.Get())
           .UseInMemoryUsers(Users.Get());

    var options = new IdentityServerOptions
    {
        SiteName = Constants.IdentityServerName,
        SigningCertificate = Certificate.Get(),
        Factory = factory,
    };

    app.UseIdentityServer(options);
}

Минимальная реализация интеграции веб-клиента с Identity Server:

public void Configuration(IAppBuilder app)
{
    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        AuthenticationType = "Cookies"
    });

    app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
    {
        ClientId = Constants.ClientName,
        Authority = Constants.IdentityServerAddress,
        RedirectUri = Constants.ClientReturnUrl,
        ResponseType = "id_token",
        Scope = "openid email",
        SignInAsAuthenticationType = "Cookies",
    });
}

Минимальная реализация интеграции веб-API с Identity Server:

public void Configuration(IAppBuilder app)
{
    app.UseIdentityServerBearerTokenAuthentication(
        new IdentityServerBearerTokenAuthenticationOptions
        {
            Authority = Constants.IdentityServerAddress,
            RequiredScopes = new[] { "write" },
            ValidationMode = ValidationMode.Local,

            // credentials for the introspection endpoint
            ClientId = "write",
            ClientSecret = "secret"
        });

    app.UseWebApi(WebApiConfig.Register());
}

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 4,00 из 5)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector