Архитектура мультиплатформенной аутентификации на основе токенов

задняя часть

Мой официальный аккаунт: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), сгенерированного ПК, на котором выполнен вход и аутентификация.

Основные шаги заключаются в следующем:

  1. Пользователь на ПК завершил аутентификацию и вошел в систему

  2. Сторона ПК генерирует набор pam_token, связанный с этим пользователем.

  3. Сторона ПК генерирует QR-код по ссылке использования этого pam_token.

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

  5. Мобильный терминал получает refresh_token (долгосрочная сессия)

  6. Получить access_token в соответствии с refresh_token

  7. Завершите нормальную работу вызова интерфейса

Примечание:

  • Срок жизни составляет 2 минуты, и он истечет и будет удален через 2 минуты.

  • Меняется каждую минуту, когда не используется

  • Удалять сразу после использования

  • Этот режим аутентификации обычно не используется

4.5, карта_токен

Функции:

Вошедшее в систему мобильное приложение сканирует код для аутентификации системы на стороне ПК и завершает вход в систему на стороне ПК (Mobile Auth Pc).

Основные шаги:

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

  2. Анонимный map_token генерируется компьютером, который не вошел в систему.

  3. После того, как мобильный терминал сканирует код, в БД генерируются map_token и ассоциация пользователя (подпись завершена)

  4. db также генерирует web_token для этого пользователя

  5. Сторона ПК всегда использовала map_token в качестве параметра для поиска web_token этого именованного пользователя.

  6. Сторона ПК получает access_token в соответствии с web_token.

  7. Последующие обычные вызовы интерфейса вызовов работают

Примечание:

  • Срок жизни составляет 2 минуты, и он истечет и будет удален через 2 минуты.

  • Меняется каждую минуту, когда не используется

  • Удалять сразу после использования

5. Резюме и перспективы

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

  • Проблема классификации токенов

  • Проблема с настройкой параметра конфиденциальности токена

  • Сценарии использования токена

  • Отношения иерархического преобразования токенов с различными жизненными циклами

Метод проектирования, упомянутый в этой статье, можно применять, помимо прочего, к следующим сценариям на прикладном уровне:

  • Логин пользователя

  • Выпущены купоны с ограниченным сроком действия

  • Выдаются ограниченные по времени пригласительные коды

  • Моментальная авторизация по QR-коду

  • Ограниченный по времени код подтверждения мобильного телефона/электронной почты

  • Несколько разных платформ вызывают один и тот же набор интерфейсов API.

  • Несколько платформ используют один и тот же центр аутентификации

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

Рекомендуемое чтение

Java Notes Daquan.md

Удивительно, на этом веб-сайте Java есть все виды проектов! https://markerhub.com

Мастер UP этой станции B, java действительно хорош!