Projektowanie bezpiecznej logiki uwierzytelniania i autoryzacji użytkowników wymaga absolutnej jasności. Od pętli uwierzytelniania wieloskładnikowego (MFA) po zatwierdzenia kodu autoryzacji OAuth 2.0 z PKCE, wizualizacja wymian tokenów i granic bezpieczeństwa zapobiega kluczowym błędom implementacji. Ten przewodnik zawiera krok po kroku przykłady diagramów aktywności UML, kod źródłowy PlantUML oraz gotowe do użycia podpowiedzi AI dla architektów systemów i programistów.
Przykład 1: Standardowe logowanie przy użyciu nazwy użytkownika i hasła z MFA
Ten diagram aktywności przedstawia pełny przepływ weryfikacji poświadczeń, w tym ograniczanie szybkości ataków brute-force oraz weryfikację tokenu uwierzytelniania wieloskładnikowego (MFA).
Kluczowe koncepcje modelowania:
- Podziały poziomów (swimlanes): Oddzielanie interfejsu użytkownika (aplikacji klienckiej), backendu API oraz bazy danych/dostawcy tożsamości.
- Warunki zabezpieczające (guard conditions): Ocena poprawności hasła oraz stanu zablokowania konta.
Kod PlantUML:
@startuml
|Aplikacja kliencka|
start
:Wprowadź nazwę użytkownika i hasło;
:Kliknij "Zaloguj się";
|Interfejs API uwierzytelniania|
:Weryfikuj dane żądania;
jeśli (Przekroczono limit szybkości?) to ([Tak])
|Aplikacja kliencka|
:Wyświetl komunikat "Zbyt dużo żądań";
stop
inaczej ([Nie])
|Baza danych / Dostawca tożsamości|
:Pobierz konto i skrót hasła;
endif
|Interfejs API uwierzytelniania|
jeśli (Hasło pasuje?) to ([Nie])
:Zwiększ licznik nieudanych prób;
|Aplikacja kliencka|
:Wyświetl błąd "Nieprawidłowe dane logowania";
stop
inaczej ([Tak])
|Interfejs API uwierzytelniania|
jeśli (Włączono MFA?) to ([Tak])
|Aplikacja kliencka|
:Zapytaj o 6-cyfrowy kod MFA;
:Wyślij kod MFA;
|Interfejs API uwierzytelniania|
jeśli (Kod MFA jest poprawny?) to ([Tak])
:Wygeneruj tokeny sesji;
inaczej ([Nie])
|Aplikacja kliencka|
:Wyświetl błąd "Nieprawidłowy kod MFA";
stop
endif
inaczej ([Nie])
|Interfejs API uwierzytelniania|
:Wygeneruj tokeny sesji;
endif
endif
|Aplikacja kliencka|
:Zachowaj JWT bezpiecznie i przekieruj do pulpitu;
stop
@enduml Podpowiedź dla czatobota AI:
„Wygeneruj diagram aktywności UML dla procesu logowania użytkownika z MFA. Użyj poziomów (swimlanes): Aplikacja kliencka, Interfejs API uwierzytelniania oraz Baza danych/Dostawca tożsamości. Sprawdź limity szybkości, zweryfikuj skróty haseł, a jeśli MFA jest włączone, poproś o 6-cyfrowy kod przed wydaniem tokenów sesji.”
Przykład 2: Przepływ kodu autoryzacji OAuth 2.0 z PKCE
Zatwierdzenie kodu autoryzacji OAuth 2.0 z dowodem klucza dla wymiany kodu (PKCE) to standard branżowy dla aplikacji jednostronicowych (SPAs) i aplikacji mobilnych. Wizualizacja wyzwań kodu i wymian tokenów zapewnia pełną zgodność z protokołem.
Kluczowe koncepcje modelowania:
- Generowanie równoległe: Generowanie
code_verifierorazwyzwanie kodurównolegle przed uruchomieniem przeglądarki. - Autoryzacja międzydomenowa: Mapowanie przekierowań między klientem, serwerem autoryzacji i serwerem zasobów.
Kod PlantUML:
@startuml
|Aplikacja Klienta (SPA)|
start
fork
:Wygeneruj weryfikator kodu PKCE;
fork again
:Wyprowadź wyzwanie kodu PKCE (SHA256);
end fork
:Przekieruj przeglądarkę do serwera autoryzacji z wyzwaniem;
|Serwer Autoryzacji|
:Zapytaj użytkownika o logowanie i zgodę;
|Użytkownik|
:Zatwierdź zakresy i autoryzuj;
|Serwer Autoryzacji|
:Wystaw krótkotrwały kod autoryzacji;
:Przekieruj do adresu przekierowania klienta;
|Aplikacja Klienta (SPA)|
:Wyodrębnij kod autoryzacji;
:Wyślij kod + weryfikator kodu PKCE do punktu końcowego tokenu;
|Serwer Autoryzacji|
:Weryfikuj weryfikator kodu względem wyzwania kodu;
if (Weryfikacja powiodła się?) then ([Tak])
:Wystaw token dostępu i token odświeżania;
|Aplikacja Klienta (SPA)|
:Zachowaj token dostępu w pamięci;
:Pobierz chroniony profil użytkownika;
else ([Niepowodzenie])
|Aplikacja Klienta (SPA)|
:Wyświetl błąd autoryzacji;
endif
stop
@enduml
Zaproszenie do czatobota AI:
„Stwórz diagram aktywności dla przepływu kodu autoryzacji OAuth 2.0 z PKCE. Pokaż równoległe tworzenie code_verifier i code_challenge, przekierowanie do serwera autoryzacji, zgodę użytkownika, wymianę kodu oraz weryfikację tokenu.”
Przykład 3: Weryfikacja tokenu JWT i przepływ cichego odświeżania
Bezpieczne zarządzanie autoryzacją interfejsu API wymaga weryfikacji tokenów JSON Web (JWT) przy każdym żądaniu oraz cichego odświeżania wygasłych tokenów za pomocą tajnych tokenów odświeżania w tle, bez zakłócania doświadczenia użytkownika.
Kluczowe koncepcje modelowania:
- Asynchroniczna pętla odzyskiwania:Żądanie nowego tokenu dostępu, gdy otrzymamy
401 Nieautoryzowanyodpowiedź jest przechwycona. - Obsługa wygaśnięcia sesji:Wyczyszczenie pamięci lokalnej i przekierowanie do logowania, gdy sam token odświeżania wygaśnie.
Kod PlantUML:
@startuml
|Aplikacja Klienta|
start
:Wyślij żądanie API z tokenem nośnym;
|Brama API|
:Sprawdź nagłówek autoryzacji;
if (Token ważny i nie wygasł?) then ([Ważny])
:Przekaż żądanie do mikroserwisu;
|Aplikacja Klienta|
:Odbierz dane ładunku API;
stop
else ([Wygasł / 401])
|Aplikacja Klienta|
:Przechwycić błąd 401;
:Wyślij token odświeżania do punktu końcowego autoryzacji;
|Interfejs API autoryzacji|
if (Token odświeżania ważny?) then ([Tak])
:Wystaw nowy token dostępu;
|Aplikacja Klienta|
:Zaktualizuj token dostępu w pamięci;
:Ponów oryginalne żądanie API;
stop
else ([Wygasł / Anulowany])
|Aplikacja Klienta|
:Wyczyść zapisane tokeny;
:Przekieruj użytkownika do ekranu logowania;
stop
endif
endif
@enduml
Zaproszenie do czatobota AI:
„Stwórz diagram aktywności pokazujący weryfikację tokenu JWT i ciche odświeżenie. Jeśli token dostępu jest ważny, dostarcz ładunek API. Jeśli wygasł (401), spróbuj cichego odświeżenia tokenu. Jeśli token odświeżania również wygasł, wyczyść pamięć lokalną i przekieruj do ekranu logowania.”
Inżynieria promptów dla przepływów bezpieczeństwa i autoryzacji
Podczas modelowania protokołów bezpieczeństwa za pomocąnarzędzia do diagramów aktywności AI, dokładne sformułowanie gwarantuje, że granice bezpieczeństwa są poprawnie zamodelowane:
- Wymień dokładne elementy bezpieczeństwa:Jawnie wymień tokeny, kody weryfikacji i skróty (np.„token dostępu JWT”, „code_challenge”, „hash bcrypt“) aby AI poprawnie oznaczało węzły.
- Zdefiniuj ścieżki szczęśliwe i nieszczęśliwe: Jawne określenie przepływów błędów (np. „Jeśli MFA nie powiedzie się, wyświetl błąd. Jeśli przekroczono limit szybkości, zwróć 429 Zbyt dużo żądań“).
- Określ granice zaufania: Użyj kanałów przepływu, aby odróżnić wykonanie po stronie klienta (niezaufany przeglądarka/ aplikacja mobilna) od wykonania po stronie serwera (zaufany bramka API/baza danych).
Łączenie generowania AI z diagramami jako kodem w Visual Paradigm
Projektowanie architektury bezpieczeństwa wymaga szybkiego iterowania wspieranego przez rygorystyczne kontrolowanie wersji. Chatbot do tworzenia diagramów z AI w Visual Paradigm zapewnia kompletny przepływ pracy od początku do końca:
- Generowanie diagramów uwierzytelniania w sposób rozmowy: Wprowadź złożone protokoły bezpieczeństwa do narzędzia UML z AI i otrzymaj w ciągu kilku sekund poprawny składniowo kod PlantUML lub Mermaid.
- Edytuj za pomocą VPasCode: Eksportuj wygenerowane diagramy uwierzytelniania bezpośrednio do VPasCode aby dokonać drobnych poprawek.
- Zasady postępowania bezpieczeństwa w OpenDocs: Wstaw diagramy działań do OpenDocs, aby tworzyć kompleksowe przeglądy architektury bezpieczeństwa, przewodniki wdrażania dla programistów oraz dokumentację audytu SOC 2 / ISO 27001.
- Współdzielenie interaktywnych sesji: Udostępnij bezpośrednie adresy URL sesji czatu kolegom programistom i audytorom bezpieczeństwa, aby szybko uzyskać wspólne opinie.
Doświadcz modelowania AI w sposób rozmowy przez przeglądarkę za pomocą VP Online Deluxe Edition lub w środowisku IDE na komputerze stacjonarnym za pomocą VP Desktop Professional Edition.
Często zadawane pytania
Dlaczego wybrać diagramy działania UML zamiast diagramów sekwencji dla OAuth 2.0?
Podczas gdy diagramy sekwencji wyróżniają się w pokazywaniu przekazywania wiadomości uporządkowanych według czasu między systemami, diagramy działania są lepsze do ilustrowania logiki decyzyjnej, warunkowych odświeżeń tokenów oraz zadań współbieżnych (takich jak generowanie skrótów PKCE równolegle).
Czy mogę eksportować wygenerowane diagramy uwierzytelniania, aby edytować je w VP Desktop?
Tak. Diagramy wygenerowane przez czatbot do tworzenia diagramów AI mogą być otwierane i edytowane bezpośrednio w Visual Paradigm Desktop lub Visual Paradigm Online w celu dalszej wizualnej poprawy.
Czy czatbot AI gwarantuje niskie stawki błędów składniowych dla diagramów bezpieczeństwa?
Tak. W przeciwieństwie do ogólnych narzędzi czatowych opartych na AI, Visual Paradigm wykorzystuje specjalistyczne, dobrze wyszkolone modele zaprojektowane specjalnie do generowania poprawnej składni diagramów UML i PlantUML z wyjątkowo niskimi błędami.












