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

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

Ответ 1

Я думаю, что он хорошо объяснил здесь - цитируя только ключевые предложения длинной статьи:

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

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

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

Если что-то еще неясно, отредактируйте свой вопрос, чтобы уточнить, ЧТО не на 100% понятен вам, и я уверен, что мы сможем помочь вам дальше.

Ответ 2

От Auth0.com

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

В чем преимущества использования подхода на основе токенов?

  • Кросс-домен/CORS: cookie + CORS не работают хорошо в разных доменах. Подход, основанный на токенах, позволяет сделать AJAX вызовы на любой сервер в любом домене, поскольку вы используете HTTP-заголовок для передачи информации пользователя.

  • Stateless (масштабируемость на стороне сервера a.k.a.): нет необходимости хранить хранилище сеансов, токен - это автономный объект, который передает всю информацию пользователя. Остальная часть штата живет в куки или локальном хранилище на стороне клиента.

  • CDN: вы можете обслуживать все активы вашего приложения из CDN (например, javascript, HTML, изображения и т.д.), а ваша серверная сторона - это просто API.

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

  • Mobile ready:, когда вы начинаете работать на родной платформе (iOS, Android, Windows 8 и т.д.), файлы cookie не идеальны при использовании основанный на токенах подход упрощает это.

  • CSRF:, поскольку вы не полагаетесь на файлы cookie, вам не нужно защищать от запросов на межсайтовый сайт (например, было бы невозможно sib ваш сайт, сгенерировать POST-запрос и повторно использовать существующий файл cookie для проверки подлинности, потому что его не будет).

  • Производительность: мы не представляем здесь жесткие контрольные показатели, но кругооборот в сети (например, поиск сеанса в базе данных) скорее всего, займет больше времени, чем вычисление HMACSHA256 до подтвердите токен и проанализируйте его содержимое.

Ответ 3

A token - это фрагмент данных, который мог бы создать только Server X и который содержит достаточно данных для идентификации конкретного пользователя.

Вы можете представить свою регистрационную информацию и запросить Server X для token; и затем вы можете представить свой token и попросить Server X выполнить некоторые действия, специфичные для пользователя.

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

Ответ 4

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

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

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

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

зайдите в источник

Ответ 5

Основанный на токене (безопасность/аутентификация)

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

Каковы преимущества безопасности на основе токенов?

Если вспомнить небезопасный API, то в этом случае нам нужно было предоставить свой пароль для всего, что мы хотели сделать.

Представьте, что каждый раз, когда мы входим в дверь в нашем офисе, мы должны дать каждому, кто сидит рядом с дверью, наш пароль. Теперь это будет довольно плохо, потому что это означает, что любой в нашем офисе может взять наш пароль и выдать себя за нас, и это довольно плохо. Вместо этого мы получаем токен, разумеется, вместе с паролем, но мы получаем его от одного человека. И тогда мы сможем использовать этот токен в любом месте здания. Конечно, если мы потеряем токен, у нас возникнет та же проблема, как если бы кто-то знал наш пароль, но это приводит нас к таким вещам, как, как мы можем быть уверены, что в случае потери токена мы можем отозвать доступ, и, возможно, токен не должны жить дольше, чем 24 часа, поэтому на следующий день, когда мы приедем в офис, нам нужно снова показать наш ID. Но тем не менее, есть только один человек, которому мы показываем удостоверение личности, и это охранник, который сидит там, где мы получаем токены.

Ответ 6

Вопрос старый, и технология продвинулась, вот текущее состояние:

JSON Web Token (JWT) - открытый стандарт JSON (RFC 7519) для передачи заявок между сторонами в среде веб-приложений. Токены предназначены для компактности, надежности и использования URL, особенно в контексте единого входа в веб-браузере.

https://en.wikipedia.org/wiki/JSON_Web_Token

Ответ 7

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

Токен используется для обеспечения подлинности пользователя.

Ответ 8

В настоящее время наиболее предпочтительным подходом для защиты ресурсов Web API является аутентификация пользователей на сервере Web API с использованием подписанного токена (который содержит достаточно информации для идентификации конкретного пользователя), который должен быть отправлен на сервер клиентом с каждым и каждый запрос. Это называется подходом аутентификации на основе токенов.

Аутентификация на основе токенов работает следующим образом:

Пользователь вводит имя и пароль в клиент (клиент означает браузер или мобильные устройства и т.д.).

Затем клиент отправляет эти учетные данные (то есть имя пользователя и пароль) на сервер авторизации.

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

Затем клиентское приложение включает токен доступа в заголовок авторизации HTTP-запроса для доступа к ограниченным ресурсам с сервера ресурсов до истечения срока действия токена.

В следующей статье показано, как поэтапно реализовать аутентификацию на основе токенов в WEB API.

https://dotnettutorials.net/lesson/token-based-authentication-web-api/

Ответ 9

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