Мой официальный аккаунт:MarkerHub, веб-сайт Java:markerhub.com
Чтобы увидеть больше избранных статей, нажмите:Java Notes Daquan.md
Малый концентратор ведет к чтению:
Многие знают, что токены используются в качестве учетных данных сеанса пользователя.На самом деле существует множество сценариев применения и классификаций.В статье описывается классификация токенов, настройка параметров конфиденциальности, использование сценариев и иерархическая трансформация отношений токенов в различные жизненные циклы, а также различные сценарии использования.
Неожиданно маленький жетон на самом деле имеет много знаний, и знания увеличиваются~
- Автор: Хамо
- cnblogs.com/beer/p/6029861.html
1 Обзор
В информационной системе с системой учетных записей очень важна идентификация личности.
С наступлением эры мобильного Интернета типов клиентов становится все больше и больше, и постепенно возникает шаблон с одним сервером и N клиентами.
Разные клиенты генерируют разные сценарии использования пользователей, эти сценарии:
-
Существуют различные угрозы экологической безопасности
-
Разное время жизни сеанса
-
Различные системы контроля разрешений пользователей
-
Методы вызова интерфейса на разных уровнях
Подводя итог, можно сказать, что существуют некоторые различия в их методах аутентификации.
В этой статье будет использовано определенное количество места для анализа и сортировки этих сценариев.
2. Сценарии использования
Вот несколько распространенных сценариев использования в ИТ-сервисах:
-
Пользователи входят в систему со стороны веб-браузера и используют системные службы.
-
Пользователь входит в систему с мобильного телефона (Android/iOS) и использует системные сервисы.
-
Пользователь использует открытый интерфейс для входа в систему и вызова системных служб.
-
Когда пользователь обрабатывает статус входа в систему на ПК, мобильный телефон сканирует код, чтобы авторизовать мобильный телефон для входа в систему (используется редко).
-
Пользователь обрабатывает статус входа в систему на мобильном телефоне и авторизует ПК для входа в систему, сканируя код на мобильном телефоне (сравнительно распространенный способ).
Путем разделения сцены получаются следующие различные категории токенов аутентификации:
1. Категория исходного пароля учетной записи
-
имя пользователя и пароль
-
Идентификатор/ключ приложения API
2. Категория идентификатора сеанса
-
токен на стороне браузера
-
мобильный токен
-
Токен приложения API
3. Категория вызова интерфейса
-
токен доступа к интерфейсу
-
Категория авторизации личности
-
Токен для взаимной авторизации между ПК и мобильным терминалом
3. Типы токенов
Токены разных сценариев сравниваются по следующим параметрам:
Сравнение природных свойств:
1. Стоимость использования
Неудобства, возникающие при использовании этого метода аутентификации. Например:
-
Пароль учетной записи требует, чтобы пользователь открыл страницу и ввел один за другим
-
QR-код требует, чтобы пользователь вынул мобильный телефон, чтобы отсканировать код.
2. Стоимость изменений
В этом методе аутентификации при изменении токена стоимость соответствующего изменения, которое необходимо внести пользователю:
-
При смене логина и пароля пользователю необходимо дополнительно запомнить и повторно ввести новый пароль
-
При изменении идентификатора/ключа приложения API стороннее приложение необходимо повторно изменить и развернуть в коде.
-
Когда авторизованный QR-код изменяется, пользователю необходимо повторно открыть мобильное приложение, чтобы отсканировать код.
экологический риск
-
риск быть подсмотренным
-
Риск быть пойманным
-
риск быть поддельным
Сравнение регулируемых свойств:
1. Частота использования
частота передачи по сети
2. Эффективное время
Время жизни этого токена от создания до закрытия
Конечная цель: безопасность и воздействие.
Безопасность и конфиденциальность в основном отражены в:
-
Токен нелегко украсть и украсть (контролируя частоту передачи)
-
Даже если токен украден, последствия можно контролировать (контролируя время действия)
Что касается конфиденциальности и последствий нарушения конфиденциальности, можно сделать следующие основные выводы:
-
Высокая частота воздействия легко перехватывается
-
Долгоживущие имеют более серьезные и далеко идущие последствия после перехвата.
Придерживайтесь следующих принципов:
-
Жетоны с высокой стоимостью изменения не должны быть легко изменены
-
Токены, которые не меняются легко, должны снижать частоту воздействия (количество сетевых передач).
-
Жизненный цикл токенов с высокой частотой воздействия должен быть как можно короче.
После корректировки присущих характеристик и контролируемых атрибутов различных токенов и количественной оценки каждого показателя (1~5 баллов) мы можем получить следующую сравнительную таблицу:
Примечание: user_name/passwd и app_id/app_key эквивалентны
4. Иерархическая связь токенов
Ссылаясь на сравнительную таблицу в предыдущем разделе, эти токены для разных целей можно легко разделить на слои, которые в основном можно разделить на 4 слоя:
-
Уровень пароля: наиболее традиционный метод аутентификации цифровой идентификации, согласованный между пользователями и системами.
-
Уровень сеанса: аутентификация сеанса для жизненного цикла сеанса после входа пользователя в систему.
-
Уровень вызова: аутентификация пользователя для вызовов API во время сеанса.
-
Прикладной уровень: некоторые сценарии или приложения аутентификации после того, как пользователь получит доступ к интерфейсу и разрешение на вызов.
Иерархическая схема токенов выглядит следующим образом:
В мультиклиентской информационной системе внутренняя связь между генерацией и применением этих токенов выглядит следующим образом:
-
Пользователь вводит имя пользователя и пароль пользователя для одноразовой аутентификации
-
Создавайте токены сеанса с разным жизненным циклом в разных терминалах
-
Токен клиентского сеанса обменивается недолговечными, но часто предоставляемыми токенами доступа к интерфейсу с сервера.
-
Токены сеанса могут быть сгенерированы и обновлены, чтобы продлить время жизни access_token.
-
access_token может генерировать токен QR-кода с самым коротким временем жизни для авторизации
Использование вышеуказанной архитектуры имеет следующие преимущества:
-
хорошая однородность. Это может решить проблему нормализации жизненного цикла токенов аутентификации на разных платформах.
-
Хорошая развязка. Базовый интерфейс вызывает сервер аутентификации access_token для завершения независимой реализации и развертывания.
-
Хорошая иерархия. На разных платформах могут быть совершенно разные системы контроля разрешений пользователей, и этот контроль может решаться каждой платформой на сеансовом уровне.
4.1 Пароль учетной записи
Обобщенная учетная запись/пароль представлена следующими способами:
-
Традиционное зарегистрированное имя пользователя и пароль
-
app_id/app_key приложения
Их характеристики следующие:
1. иметь особое значение
Например, для удобства памяти пользователь установит определенную учетную запись и пароль с определенным смыслом.
2. Нечастая модификация
Пароли учетных записей имеют особое значение для пользователей, и обычно они не желают изменять их без особых обстоятельств. app_id/app_key будет прописан в приложении, а модификация будет означать стоимость перевыпуска и онлайна
3. Когда утечка будет иметь далеко идущие последствия
Из-за нечастых модификаций до тех пор, пока раскрытие в основном эквивалентно раскрытию сетевой идентичности пользователя, и до тех пор, пока кража идентичности не обнаружена, такой вид кражи идентичности будет существовать всегда.
Следовательно, возможность передачи в системе аутентификации должна быть сведена к минимуму, чтобы избежать утечки.
4.2 Токен сеанса клиента
Функции:
Действуя как сеанс, разные клиенты имеют разные жизненные циклы.
Шаги для использования:
Пользователь использует пароль учетной записи в обмен на токен сеанса.
Токены разных платформ имеют разные характеристики:
Веб-платформа имеет короткий жизненный цикл
основная причина:
-
Экологическая безопасность: за счетвеб-логинОкружающая среда, как правило, является публичной средой, и риск кражи другими высок.
-
Удобство набора текста: на ПК легче печатать с помощью клавиатуры
Мобильный терминал имеет длительный жизненный цикл
основная причина:
-
Экологическая безопасность: мобильная платформа является чрезвычайно частной платформой для отдельных пользователей, и у людей мало шансов связаться с ней.
-
Удобство ввода: использование пальца на мобильном терминале для сенсорного ввода на маленьком экране имеет плохой опыт и высокую стоимость ввода.
4.3, access_token
Функции:
Учетные данные для доступа и вызова API серверных приложений.
Шаги для использования:
Используйте токен сеанса с более длительным временем жизни в обмен на этот токен доступа к интерфейсу.
Частота его воздействия напрямую связана с частотой вызовов интерфейса и является удостоверением для высокочастотного использования. Чтобы позаботиться о конфиденциальности и минимизировать ее жизненный цикл, даже если она будет перехвачена, это не будет иметь серьезных последствий.
Примечание. Access_token добавляется под клиентским токеном, в основном для того, чтобы клиентские токены с разными жизненными циклами могли иметь единый метод аутентификации при вызове API.
4.4, pam_токен
Функции:
Исходный серийный номер QR-кода (Pc Auth Mobile), сгенерированного ПК, на котором выполнен вход и аутентификация.
Основные шаги заключаются в следующем:
-
Пользователь на ПК завершил аутентификацию и вошел в систему
-
Сторона ПК генерирует набор pam_token, связанный с этим пользователем.
-
Сторона ПК генерирует QR-код по ссылке использования этого pam_token.
-
После того, как мобильный терминал сканирует код, он запрашивает сервер и связывает его с информацией о пользователе.
-
Мобильный терминал получает refresh_token (долгосрочная сессия)
-
Получить access_token в соответствии с refresh_token
-
Завершите нормальную работу вызова интерфейса
Примечание:
Срок жизни составляет 2 минуты, и он истечет и будет удален через 2 минуты.
Меняется каждую минуту, когда не используется
Удалять сразу после использования
Этот режим аутентификации обычно не используется
4.5, карта_токен
Функции:
Вошедшее в систему мобильное приложение сканирует код для аутентификации системы на стороне ПК и завершает вход в систему на стороне ПК (Mobile Auth Pc).
Основные шаги:
-
Мобильный терминал завершает аутентификацию личности пользователя и входит в приложение.
-
Анонимный map_token генерируется компьютером, который не вошел в систему.
-
После того, как мобильный терминал сканирует код, в БД генерируются map_token и ассоциация пользователя (подпись завершена)
-
db также генерирует web_token для этого пользователя
-
Сторона ПК всегда использовала map_token в качестве параметра для поиска web_token этого именованного пользователя.
-
Сторона ПК получает access_token в соответствии с web_token.
-
Последующие обычные вызовы интерфейса вызовов работают
Примечание:
Срок жизни составляет 2 минуты, и он истечет и будет удален через 2 минуты.
Меняется каждую минуту, когда не используется
Удалять сразу после использования
5. Резюме и перспективы
Система аутентификации на основе токенов, разработанная в этой статье, в основном решает следующие проблемы:
-
Проблема классификации токенов
-
Проблема с настройкой параметра конфиденциальности токена
-
Сценарии использования токена
-
Отношения иерархического преобразования токенов с различными жизненными циклами
Метод проектирования, упомянутый в этой статье, можно применять, помимо прочего, к следующим сценариям на прикладном уровне:
-
Логин пользователя
-
Выпущены купоны с ограниченным сроком действия
-
Выдаются ограниченные по времени пригласительные коды
-
Моментальная авторизация по QR-коду
-
Ограниченный по времени код подтверждения мобильного телефона/электронной почты
-
Несколько разных платформ вызывают один и тот же набор интерфейсов API.
-
Несколько платформ используют один и тот же центр аутентификации
Что касается других сценариев использования, нам нужно изучить.
Рекомендуемое чтение
Удивительно, на этом веб-сайте Java есть все виды проектов! https://markerhub.com