N видов решений для внешней и внутренней аутентификации, на которые стоит обратить внимание
N видов решений для внешней и внутренней аутентификации, на которые стоит обратить внимание

Вроде сначала, а потом читай, Java продвинута более чем наполовину.

Привет всем, я брат Нэн.

记得前几天Брат Нэн在牛客看到一条Вопросы для интервью:Как подтвердить подлинность работы,Знаете ли вы часто используемые схемы аутентификации?

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

1. N схем аутентификации

1.1 Аутентификация учетной записи и пароля

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

NordPass在这个月发布了 2024 年худший парольСписок,Вас обманули? ?

1.2 HTTP-аутентификация

Как следует из названия, аутентификация HTTP основана на протоколе HTTP. Как проверить подлинность протокола HTTP? Где хранится зашифрованная информация?

Этот метод аутентификации является ранним методом аутентификации.,Так что безопасность на самом деле не высока,это черезЗаголовок HTTP-запросаПередать данные аутентификации,Использовать пароль учетной записиКодировка Base64поставить после Заголовок запроса,род ВПередача открытого текста

Чтобы кратко рассказать о процессе аутентификации, вы также можете обратиться к следующей блок-схеме, предоставленной сайтом Developer.mozilla.org.

  1. Браузер: Мне нужно запросить эту информацию. Сервер, пожалуйста, верните ее мне.
  2. Сервер: Эта информация должна быть проверена. Отправьте свою учетную запись и пароль.
  3. Браузер: я прошу пользователя ввести пароль своей учетной записи

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

конечно! Аутентификация HTTP также может повысить безопасность за счет обновления протокола HTTP до протокола HTTPs.

Зависит от ВHTTPSИспользование протоколаПротокол SSL/TLSДля передачи данныхшифрование,Это гарантирует, что данные не читаются во время передачи. Вы можете просмотреть то, что только что сказал брат Нэн.,HTTP-аутентификацияиспользоватьКодировка Base64Обработка пароля учетной записи,Можно сказать, что этот метод не считается шифрованием.,Кодировка Base64хотетьдекодированиеВыход занимает считанные минуты。

1.3 Аутентификация сеанса cookie

Файлы cookie создаются с сервера и сохраняются в браузере. Установить файл cookie на определенный веб-сайт также очень просто.

Язык кода:HTTP
копировать
# Установить файлы cookie
Set-Cookie: <cookie-name>=<cookie-value>

но! Многие люди могут неправильно понять: сеанс — это другой тип данных, отличающийся от файлов cookie. Не совсем,Сессия — это, по сути, файл cookie.,Я называю это содержитИдентификатор сеансаизCookie。

Шаги для аутентификации через Session-Cookie следующие. Общий процесс аналогичен HTTP-аутентификации, поэтому вам не нужно думать об этом так сложно.

  1. Пользователь отправляет учетные данные пользователя на сервер в браузере. Эти учетные данные пользователя могут быть паролем учетной записи, отправленным через форму.
  2. После прохождения аутентификации сервера,сохранит файл внутри сервера, содержащийСрок действияиз Идентификатор сеанса, одновременно ставим Идентификатор сеанс упаковывается в файл cookie и отправляется в браузер.
  3. Браузер сохраняет сеанс и передает его при каждом запросе на веб-сайт.
  4. Если сервер может успешно сопоставить отправленный идентификатор сеанса сеанса, это означает, что аутентификация прошла успешно

конечно! В использовании аутентификации Cookie-Session также есть болевой момент: ее сложно использовать во времени! Далее брат Нэн расскажет о том, какой тип аутентификации не вызывает проблем при пересечении.

Cookeиз发送是Зависит от浏览器Автоматическое управление,Браузер и сервер также предусматривают ряд ограничений на отправку файлов cookie.,Использование файлов cookie за рубежом становится очень затруднительным.

  1. Свойство SameSite:По умолчанию ограничения на межсайтовую отправку。
  2. Домен и путь:Привязка к конкретному доменному имениипуть。
  3. Безопасный и только Http:по договоренностии Влияние на поведение клиента。

1.4 Аутентификация токена

Токены аутентификации. Два вышеуказанных метода аутентификации одинаковы.,Все вЗаголовок запросаносить внутрипроверятьинформация,Одновременно на серверепроверять。

Но аутентификация по токену имеет свои особенности, что также является ее преимуществом перед традиционными методами аутентификации.

(1) Брат Нэн упомянул выше, что Аутентификация сеанса Использовать куки для пересечения хлопотно, а вот с токенами переправиться не составит труда. Все верно, это просто и без проблем. Аутентификация токена Является фронтенд-разработчикомявныйНаземная ручкаTokenдобавить в Заголовок запроса,Вы даже можетеTokenнадеватьстрока запроса,Браузер не устанавливает никаких ограничений на использование файлов cookie.

(2) Токены не имеют гражданства.,сервер不需хотеть像Аутентификация сеанса cookieТакже поддерживать состояние сеанса,сервер只需хотетьпроверятьTokenиз真实性即可。

(3)Tokenпроверять非常适合目前израспределенная система,Для каждого узла распределенной системы всегда было проблемой поддерживать один и тот же набор состояний сеанса.,Tokenпроверять Ничего подобного вообще。

в целомраспределенная система Будет специально созданныйTokenжетониStorageTokenжетонизсервер,Существует также сервер, предназначенный для проверки действительности токена. Кроме того, не существует фиксированного формата для токена аутентификации.,Token存储изинформацияв целом有:Уникальный идентификатор пользователя + Временная метка + информация о разрешении

1.5 JWT-аутентификация

JWTполное имяJSON Web Token,Опять жетон? В чем разница между иToken?

JWT на самом деле является стандартом,Выражено с помощьюФормат объекта JSON存储из一种Token。Все, пожалуйста, обратите внимание,JWT должен быть токеном,Но Token не обязательно является JWT.

JWT也不需хотеть像前面изАутентификация токена一样需хотеть有专门изTokenпроверятьсервер,在任何сервер节点只需хотеть共享JWTизсекрет ключаВот и вседекодированиеJWT,Он будет представлен нижесекрет ключа

JWTЗависит от三部分组成:ЗаголовокПолезная нагрузкаПодпись,前面两部分都会Зависит отКодировка Base64Процесс。

(1)Header

Заголовок состоит из типа токена и используемого алгоритма подписи, например алгоритма подписи HMAC SHA256, приведенного ниже. Заголовок используется для определения типа алгоритма шифрования.

Язык кода:json
копировать
{
  "alg": "HS256", // HMAC Алгоритм подписи SHA256
  "typ": "JWT"
}

(2)Payload

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

Язык кода:json
копировать
{
  "sub": "666666","name": "JavaSouth Nange",
  "admin": true
}

(3)Signature

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

Язык кода:http
копировать
HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret)

Каждый должен был использовать этот сайт jwt.io,Мы можем декодировать, проверять и генерировать JWT выше.,в частностидекодированиеполучи это позжеJWT里面из用户информация。

1.6 Единый вход (SSO)

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

После входа в Google Chrome, когда мы впервые посещаем Google Mailbox, Google Maps и т. д., мы можем использовать статус входа предыдущего Google Chrome для входа на другие платформы одним щелчком мыши, сокращая повторные операции входа в систему.

закрывать ВЕдиный входВы можете проверить этофорум auth0.com,Очень четко и идеально.

1.7 Аутентификация OAuth 2.0

OAuth 2.0 — это стандартный протокол авторизации, и его первоначальная цель проста: быть ленивым. О нет, это упрощение. OAuth 2.0 может упростить работу по разработке клиентов, включая веб-программы, настольные приложения, приложения и апплеты, которые могут использовать авторизацию OAuth 2.0.

Мы загружаем новое приложение на свой мобильный телефон и используем стороннюю авторизацию WeChat. На самом деле эта модель представляет собой авторизацию OAuth 2.0.

Сайт OAuth 2.0Можно сказать, что это правильноАвторизация OAuth 2.0Лучшее введение、Самое полное место.

1.8 Отсканируйте QR-код, чтобы войти в систему.

QR-код на самом деле называется QR-кодом на английском языке.,Полное имяQuick Response Code,Впервые разработан японской компанией Denso Wave в 1994 году Придумано в году.

Краткое содержание одним предложением Сканируйте код, чтобы войти,QR-код содержитидентификатор сеансаинформация,После того, как пользователь сканирует код,идентификатор сеанса + Информация об авторизации пользователя发送给серверпроверять,серверпроверять Если оно прошло, вход успешен.。

Я Брат Нэн, Нэн - это Нэн. Мне нравятся твои лайки, лайки и лайки на Get.

После прочтения мне понравилось, что Java более чем наполовину продвинут. Нравиться | собирать | Обратите внимание, ваша поддержка — самая большая мотивация для моего творчества.❤️

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.