Проектирование безопасной логики аутентификации и авторизации пользователей требует полной ясности. От циклов многократной аутентификации (MFA) до выдачи кодов авторизации OAuth 2.0 с использованием PKCE, визуализация обменов токенами и границ безопасности предотвращает критические ошибки при реализации. Данное руководство предоставляет пошаговые примеры диаграмм деятельности UML, исходный код PlantUML и готовые к использованию промты ИИ для архитекторов систем и разработчиков.
Пример 1: Стандартная авторизация по имени пользователя и паролю с MFA
Эта диаграмма деятельности отображает полный процесс проверки учетных данных, включая ограничение скорости атаки методом грубой силы и проверку токена многократной аутентификации (MFA).
Ключевые концепции моделирования:
- Разделы по потокам (swimlanes):Разделение пользовательского интерфейса (клиентское приложение), API-бэкенда и базы данных/провайдера удостоверений.
- Условные условия-ограничения:Оценка действительности пароля и статуса блокировки учетной записи.
Код PlantUML:
@startuml
|Клиентское приложение|
start
:Введите имя пользователя и пароль;
:Нажмите «Войти»;
|API аутентификации|
:Проверка нагрузки запроса;
если (Превышено ограничение скорости?) то ([Да])
|Клиентское приложение|
:Отобразить уведомление «Слишком много запросов»;
stop
иначе ([Нет])
|База данных / Провайдер удостоверений|
:Получить учетную запись и хэш пароля;
endif
|API аутентификации|
если (Пароль совпадает?) то ([Нет])
:Увеличить счетчик неудачных попыток;
|Клиентское приложение|
:Отобразить ошибку «Неверные учетные данные»;
stop
иначе ([Да])
|API аутентификации|
если (MFA включено?) то ([Да])
|Клиентское приложение|
:Запросить 6-значный код MFA;
:Отправить код MFA;
|API аутентификации|
если (Код MFA действителен?) то ([Да])
:Сгенерировать сессионные токены;
иначе ([Нет])
|Клиентское приложение|
:Отобразить ошибку «Неверный код MFA»;
stop
endif
иначе ([Нет])
|API аутентификации|
:Сгенерировать сессионные токены;
endif
endif
|Клиентское приложение|
:Безопасно сохранить JWT и перенаправить на панель управления;
stop
@enduml Промт для чат-бота ИИ:
«Создайте диаграмму деятельности UML для процесса входа пользователя с MFA. Используйте потоки: Клиентское приложение, API аутентификации и База данных/Провайдер удостоверений. Проверьте ограничение скорости, проверьте хэши паролей, и если MFA включено, запросите 6-значный код перед выдачей сессионных токенов.»
Пример 2: Поток кода авторизации OAuth 2.0 с PKCE
Выдача кода авторизации OAuth 2.0 с ключом доказательства для обмена кодами (PKCE) является отраслевым стандартом для одностраничных приложений (SPAs) и мобильных приложений. Визуализация вызовов кода и обменов токенами обеспечивает полное соответствие протоколу.
Ключевые концепции моделирования:
- Параллельное создание:Генерация
code_verifierикод_вызоводновременно перед запуском браузера. - Авторизация между доменами: Сопоставление перенаправлений между клиентом, сервером авторизации и сервером ресурсов.
Код PlantUML:
@startuml
|Клиентское приложение (SPA)|
start
fork
:Создать код-верификатор PKCE;
fork again
:Вывести код-вызов PKCE (SHA256);
end fork
:Перенаправить браузер на сервер авторизации с вызовом;
|Сервер авторизации|
:Предложить пользователю войти и дать согласие;
|Пользователь|
:Подтвердить области доступа и авторизовать;
|Сервер авторизации|
:Выдать временный код авторизации;
:Перенаправить на URI перенаправления клиента;
|Клиентское приложение (SPA)|
:Извлечь код авторизации;
:Отправить код + код-верификатор PKCE на конечную точку токенов;
|Сервер авторизации|
:Проверить код-верификатор по коду-вызову;
if (Проверка успешна?) then ([Да])
:Выдать доступный токен и токен обновления;
|Клиентское приложение (SPA)|
:Сохранить доступный токен в памяти;
:Получить защищенный профиль пользователя;
else ([Ошибка])
|Клиентское приложение (SPA)|
:Отобразить ошибку авторизации;
endif
stop
@enduml
Подсказка для чат-бота ИИ:
«Создайте диаграмму действий для потока авторизации OAuth 2.0 с PKCE. Покажите параллельное создание code_verifier и code_challenge, перенаправление на сервер авторизации, согласие пользователя, обмен кода и проверку токена.»
Пример 3: Проверка токена JWT и поток тихого обновления
Безопасное управление авторизацией API требует проверки JSON-веб-токенов (JWT) при каждом запросе и тихого обновления истекших токенов с помощью фоновых токенов обновления без нарушения пользовательского опыта.
Ключевые концепции моделирования:
- Асинхронный цикл восстановления: Запрос нового доступного токена при получении ответа
401 Не авторизованответа, который был перехвачен. - Обработка истечения сессии: Очистка локального хранилища и перенаправление на экран входа, когда сам токен обновления истекает.
Код PlantUML:
@startuml
|Клиентское приложение|
start
:Отправить запрос к API с токеном-носителем;
|Шлюз API|
:Проверить заголовок авторизации;
if (Токен действителен и не истек?) then ([Действителен])
:Передать запрос микросервису;
|Клиентское приложение|
:Получить данные ответа API;
stop
else ([Истек / 401])
|Клиентское приложение|
:Перехватить ошибку 401;
:Отправить токен обновления на конечную точку авторизации;
|API авторизации|
if (Токен обновления действителен?) then ([Да])
:Выдать новый доступный токен;
|Клиентское приложение|
:Обновить доступный токен в памяти;
:Повторить исходный запрос к API;
stop
else ([Истек / Отозван])
|Клиентское приложение|
:Очистить сохраненные токены;
:Перенаправить пользователя на экран входа;
stop
endif
endif
@enduml
Подсказка для чат-бота ИИ:
«Создайте диаграмму действий, показывающую проверку токена JWT и тихое обновление. Если доступный токен действителен, предоставьте данные ответа API. Если токен истек (401), попытайтесь выполнить тихое обновление токена. Если токен обновления также истек, очистите локальное хранилище и перенаправьте на экран входа.»
Инженерия подсказок для рабочих процессов безопасности и аутентификации
При моделировании протоколов безопасности с помощью инструмента диаграмм действий ИИ, точная формулировка гарантирует, что формальные границы безопасности будут точно отображены:
- Укажите точные элементы безопасности: Явно упомяните токены, коды проверки и хеши (например, «JWT-токен доступа», «code_challenge», «хэш bcrypt») чтобы ИИ правильно помечал узлы.
- Определите как нормальные, так и ненормальные пути: Явно укажите потоки сбоев (например, «Если MFA не проходит, покажите ошибку. Если превышен лимит запросов, верните 429 Слишком много запросов»).
- Укажите границы доверия: Используйте полосы потоков, чтобы различать выполнение на стороне клиента (ненадежный браузер/мобильное приложение) и выполнение на стороне сервера (надежный шлюз API/база данных).
Объединение генерации ИИ с диаграммами как кодом в Visual Paradigm
Проектирование архитектур безопасности требует быстрой итерации в сочетании с строгим контролем версий. В Чат-бот для диаграммирования с ИИ в Visual Paradigm обеспечивает полный конечный цикл рабочего процесса:
- Генерация диаграмм аутентификации в режиме диалога: Запросите у ИИ-инструмента UML сложные протоколы безопасности, и получите синтаксически корректный код PlantUML или Mermaid за секунды.
- Редактирование с помощью VPasCode: Экспортируйте сгенерированные диаграммы аутентификации непосредственно в VPasCode для доработки.
- Безопасные стандартные операционные процедуры в OpenDocs: Встраивайте диаграммы деятельности в OpenDocs для создания всесторонних обзоров архитектуры безопасности, руководств по адаптации разработчиков и документации для аудита SOC 2 / ISO 27001.
- Обмен интерактивными сессиями: Обменивайтесь прямым URL-адресом чат-сессии с коллегами-разработчиками и аудиторами безопасности для быстрой совместной обратной связи.
Попробуйте моделирование с ИИ в режиме диалога в браузере через VP Online Deluxe Edition или внутри среды вашего настольного IDE с помощью VP Desktop Professional Edition.
Часто задаваемые вопросы
Почему стоит выбирать диаграммы активностей UML вместо диаграмм последовательности для OAuth 2.0?
Хотя диаграммы последовательности превосходно показывают передачу сообщений в хронологическом порядке между системами, диаграммы деятельности превосходны для иллюстрации логики принятия решений, условных обновлений токенов и параллельных задач (например, параллельного создания хэша PKCE).
Могу ли я экспортировать созданные диаграммы аутентификации для редактирования в VP Desktop?
Да. Диаграммы, созданные чат-ботом для построения диаграмм на основе ИИ, можно открыть и редактировать непосредственно в Visual Paradigm Desktop или Visual Paradigm Online для дальнейшей визуальной доработки.
Гарантирует ли чат-бот на основе ИИ низкий уровень синтаксических ошибок для диаграмм безопасности?
Да. В отличие от общих инструментов чат-ботов на основе ИИ, Visual Paradigm использует специализированные хорошо обученные модели, специально разработанные для генерации корректного синтаксиса диаграмм UML и PlantUML с исключительно низким уровнем ошибок.












