Diseñar una lógica de autenticación y autorización de usuarios segura requiere claridad absoluta. Desde bucles de autenticación multifactor (MFA) hasta concesiones de código de autorización de OAuth 2.0 con PKCE, visualizar los intercambios de tokens y los límites de seguridad evita fallos críticos en la implementación. Esta guía proporciona ejemplos paso a paso de diagramas de actividad UML, código fuente de PlantUML y prompts de IA listos para usar para arquitectos de sistemas y desarrolladores.
Ejemplo 1: Inicio de sesión estándar con nombre de usuario/contraseña y MFA
Este diagrama de actividad representa un flujo completo de validación de credenciales, incluyendo el control de tasa contra ataques de fuerza bruta y la verificación del token de autenticación multifactor (MFA).
Conceptos clave de modelado:
- Particiones de carriles:Separar la interfaz de usuario (aplicación cliente), la API de backend y la base de datos o proveedor de identidad.
- Condiciones de guardia condicionales:Evaluar la validez de la contraseña y el estado de bloqueo de la cuenta.
Código PlantUML:
@startuml
|Aplicación cliente|
start
:Ingresar nombre de usuario y contraseña;
:Hacer clic en "Iniciar sesión";
|API de autenticación|
:Validar carga útil de la solicitud;
si (Excedido el límite de tasa?) entonces ([Sí])
|Aplicación cliente|
:Mostrar aviso "Demasiadas solicitudes";
stop
sino ([No])
|Base de datos / IDP|
:Obtener cuenta y hash de contraseña;
fin si
|API de autenticación|
si (Coincidencia de contraseña?) entonces ([No])
:Incrementar contador de intentos fallidos;
|Aplicación cliente|
:Mostrar error "Credenciales inválidas";
stop
sino ([Sí])
|API de autenticación|
si (Habilitado MFA?) entonces ([Sí])
|Aplicación cliente|
:Solicitar código MFA de 6 dígitos;
:Enviar código MFA;
|API de autenticación|
si (Código MFA válido?) entonces ([Sí])
:Generar tokens de sesión;
sino ([No])
|Aplicación cliente|
:Mostrar error "Código MFA inválido";
stop
fin si
sino ([No])
|API de autenticación|
:Generar tokens de sesión;
fin si
fin si
|Aplicación cliente|
:Almacenar JWT de forma segura y redirigir al panel de control;
stop
@enduml Prompt para chatbot de IA:
«Genera un diagrama de actividad UML para un proceso de inicio de sesión de usuario con MFA. Usa carriles: Aplicación cliente, API de autenticación y Base de datos/IDP. Comprueba los límites de tasa, verifica los hashes de contraseñas y, si el MFA está habilitado, solicita un código de 6 dígitos antes de emitir los tokens de sesión.»
Ejemplo 2: Flujo de código de autorización de OAuth 2.0 con PKCE
La concesión de código de autorización de OAuth 2.0 con clave de prueba para intercambio de código (PKCE) es el estándar de la industria para aplicaciones de página única (SPAs) y aplicaciones móviles. Visualizar los desafíos de código y los intercambios de tokens garantiza el cumplimiento total del protocolo.
Conceptos clave de modelado:
- Generación paralela:Generando el
code_verifierydesafío de códigode forma simultánea antes de iniciar el navegador. - Autorización entre dominios: Mapeo de redirecciones entre Cliente, Servidor de Autorización y Servidor de Recursos.
Código PlantUML:
@startuml
|Aplicación Cliente (SPA)|
iniciar
forzar
:Generar Verificador de Código PKCE;
forzar de nuevo
:Derivar Desafío de Código PKCE (SHA256);
finalizar forzar
:Redirigir navegador al Servidor de Autenticación con el Desafío;
|Servidor de Autorización|
:Pedir al Usuario inicio de sesión y consentimiento;
|Usuario|
:Aprobar Ámbitos y Autorizar;
|Servidor de Autorización|
:Emisión de Código de Autorización de Corta Vida;
:Redirigir a la URI de Redirección del Cliente;
|Aplicación Cliente (SPA)|
:Extraer el Código de Autorización;
:Enviar Código + Verificador de Código PKCE al Punto Final de Token;
|Servidor de Autorización|
:Verificar el Verificador de Código contra el Desafío de Código;
si (Verificación exitosa?) entonces ([Sí])
:Emisión de Token de Acceso y Token de Refresco;
|Aplicación Cliente (SPA)|
:Almacenar el Token de Acceso en memoria;
:Obtener el Perfil de Usuario Protegido;
sino ([Fallido])
|Aplicación Cliente (SPA)|
:Mostrar Error de Autorización;
fin si
detener
@enduml
Solicitud para el chatbot de IA:
“Crea un diagrama de actividades para el flujo de código de autorización de OAuth 2.0 con PKCE. Muestra la creación paralela del code_verifier y el code_challenge, redirección al servidor de autorización, consentimiento del usuario, canje del código y verificación del token.”
Ejemplo 3: Validación de token JWT y flujo de refresco silencioso
Gestionar la autorización de la API de forma segura requiere validar los Tokens Web JSON (JWT) en cada solicitud y renovar silenciosamente los tokens caducados mediante tokens de refresco en segundo plano sin interrumpir la experiencia del usuario.
Conceptos clave de modelado:
- Bucle de recuperación asíncrona: Solicitar un nuevo token de acceso cuando se recibe una
401 No autorizadorespuesta es interceptada. - Manejo de expiración de sesión: Limpiar el almacenamiento local y redirigir al inicio de sesión cuando el token de refresco expira por sí mismo.
Código PlantUML:
@startuml
|Aplicación Cliente|
iniciar
:Enviar solicitud de API con token de portador;
|Pasarela de API|
:Inspeccionar encabezado de autorización;
si (Token válido y no caducado?) entonces ([Válido])
:Forward request al microservicio;
|Aplicación Cliente|
:Recibir datos de carga útil de la API;
detener
sino ([Caducado / 401])
|Aplicación Cliente|
:Interceptar error 401;
:Enviar token de refresco al punto final de autenticación;
|API de Autenticación|
si (Token de refresco válido?) entonces ([Sí])
:Emisión de nuevo token de acceso;
|Aplicación Cliente|
:Actualizar el token de acceso en memoria;
:Reintentar la solicitud original de API;
detener
sino ([Caducado / Revocado])
|Aplicación Cliente|
:Limpiar tokens almacenados;
:Redirigir usuario a la pantalla de inicio de sesión;
detener
fin si
fin si
@enduml
Solicitud para el chatbot de IA:
“Genera un diagrama de actividades que muestre la validación de token JWT y el refresco silencioso. Si el token de acceso es válido, sirve la carga útil de la API. Si está caducado (401), intenta un refresco silencioso del token. Si el token de refresco también ha caducado, limpia el almacenamiento local y redirige a la pantalla de inicio de sesión.”
Ingeniería de solicitudes para flujos de seguridad y autenticación
Cuando se modelan protocolos de seguridad con una herramienta de diagrama de actividades de IA, una redacción precisa garantiza que los límites formales de seguridad se mapeen de forma clara:
- Nombra los artefactos de seguridad exactos: Menciona explícitamente tokens, códigos de verificación y hashes (por ejemplo, “token de acceso JWT”, “code_challenge”, “hash bcrypt”) para que la IA etiquete los nodos correctamente.
- Define ambos caminos feliz y desafortunado: Especifica los flujos de falla explícitamente (por ejemplo, “Si falla la MFA, muestra un error. Si se excede el límite de tasa, devuelve 429 Demasiadas solicitudes”).
- Especifica los límites de confianza: Usa carriles de nado para distinguir la ejecución del lado del cliente (navegador o aplicación móvil no confiable) de la ejecución del lado del servidor (pasarela de API o base de datos de confianza).
Conectando la generación de IA con Diagramas como Código en Visual Paradigm
Diseñar arquitecturas de seguridad requiere iteraciones rápidas acompañadas de un control de versiones riguroso. El Chatbot de diagramación de IA en Visual Paradigm ofrece un flujo de trabajo completo de extremo a extremo:
- Generación conversacional de diagramas de autenticación:Solicita a la herramienta de UML de IA protocolos de seguridad complejos y recibe código sintácticamente válido de PlantUML o Mermaid en segundos.
- Edita con VPasCode:Exporta los diagramas de autenticación generados directamente en VPasCode para realizar ajustes finos.
- Procedimientos operativos estándar de seguridad en OpenDocs:Inserta diagramas de actividad en OpenDocs para crear revisiones completas de arquitectura de seguridad, guías de incorporación de desarrolladores y documentación de auditoría SOC 2 / ISO 27001.
- Compartir sesiones interactivas:Comparte direcciones URL directas de sesiones de chat con desarrolladores colegas y auditores de seguridad para obtener retroalimentación colaborativa rápida.
Experimenta el modelado de IA conversacional en la web a través de Edición Deluxe de VP Online o dentro de tu entorno de IDE de escritorio con Edición Profesional de VP Desktop.
Preguntas frecuentes
¿Por qué elegir diagramas de actividad de UML sobre diagramas de secuencia para OAuth 2.0?
Mientras que los diagramas de secuencia destacan al mostrar el intercambio de mensajes ordenados por tiempo entre sistemas, los diagramas de actividad son superiores para ilustrar la lógica de toma de decisiones, la actualización condicional de tokens y las tareas concurrentes (como la generación paralela de hashes PKCE).
¿Puedo exportar los diagramas de autenticación generados para editarlos en VP Desktop?
Sí. Los diagramas generados por el chatbot de diagramación de IA se pueden abrir y editar directamente en Visual Paradigm Desktop o Visual Paradigm Online para una mejora visual adicional.
¿El chatbot de IA garantiza tasas bajas de errores de sintaxis para diagramas de seguridad?
Sí. A diferencia de las herramientas de chat de IA genéricas, Visual Paradigm utiliza modelos especializados y bien entrenados diseñados específicamente para generar sintaxis de diagramas UML y PlantUML válidos con tasas de error excepcionalmente bajas.












