Merancang logika otentikasi dan otorisasi pengguna yang aman membutuhkan kejelasan mutlak. Mulai dari loop otentikasi multi-faktor (MFA) hingga otorisasi kode OAuth 2.0 dengan PKCE, menggambarkan pertukaran token dan batas keamanan mencegah kesalahan implementasi kritis. Panduan ini menyediakan contoh diagram aktivitas UML langkah demi langkah, kode sumber PlantUML, dan petunjuk AI siap pakai untuk arsitek sistem dan pengembang.
Contoh 1: Masuk Pengguna Standar dengan Username/Password dan MFA
Diagram aktivitas ini memetakan alur validasi kredensial secara lengkap, termasuk pembatasan laju serangan brute-force dan verifikasi token otentikasi multi-faktor (MFA).
Konsep Pemodelan Utama:
- Pembagian Swimlane:Memisahkan antarmuka pengguna (Aplikasi Klien), backend API, dan basis data/Penyedia Identitas.
- Kondisi Penjaga Bersyarat:Menilai validitas kata sandi dan status kunci akun.
Kode PlantUML:
@startuml
|Aplikasi Klien|
start
:Masukkan Username & Kata Sandi;
:Klik "Masuk";
|API Otorisasi|
:Validasi Isi Permintaan;
jika (Batasan Laju Melebihi?) maka ([Ya])
|Aplikasi Klien|
:Tampilkan Pemberitahuan "Terlalu Banyak Permintaan";
stop
selain ([Tidak])
|Database / IDP|
:Ambil Akun & Hash Kata Sandi;
endif
|API Otorisasi|
jika (Kata Sandi Cocok?) maka ([Tidak])
:Naikkan Penanda Percobaan Gagal;
|Aplikasi Klien|
:Tampilkan Kesalahan "Kredensial Salah";
stop
selain ([Ya])
|API Otorisasi|
jika (MFA Diaktifkan?) maka ([Ya])
|Aplikasi Klien|
:Permintaan Kode MFA 6 Digit;
:Kirim Kode MFA;
|API Otorisasi|
jika (Kode MFA Valid?) maka ([Ya])
:Hasilkan Token Sesi;
selain ([Tidak])
|Aplikasi Klien|
:Tampilkan Kesalahan "Kode MFA Salah";
stop
endif
selain ([Tidak])
|API Otorisasi|
:Hasilkan Token Sesi;
endif
endif
|Aplikasi Klien|
:Simpan JWT Secara Aman & Alihkan ke Dasbor;
stop
@enduml Prompt Chatbot AI:
“Hasilkan diagram aktivitas UML untuk proses login pengguna dengan MFA. Gunakan swimlane: Aplikasi Klien, API Otorisasi, dan Database/IDP. Periksa batasan laju, verifikasi hash kata sandi, dan jika MFA diaktifkan, minta kode 6 digit sebelum mengeluarkan token sesi.”
Contoh 2: Alur Kode Otorisasi OAuth 2.0 dengan PKCE
Grant Kode Otorisasi OAuth 2.0 dengan Bukti Kunci untuk Pertukaran Kode (PKCE) adalah standar industri untuk Aplikasi Halaman Tunggal (SPAs) dan aplikasi mobile. Menggambarkan tantangan kode dan pertukaran token memastikan kepatuhan penuh terhadap protokol.
Konsep Pemodelan Utama:
- Generasi Paralel:Menghasilkan
code_verifierdankode tantangansecara bersamaan sebelum meluncurkan browser. - Otorisasi lintas domain: Pemetaan alih alamat antara Klien, Server Otorisasi, dan Server Sumber Daya.
Kode PlantUML:
@startuml
|Aplikasi Klien (SPA)|
start
fork
:Hasilkan Verifier Kode PKCE;
fork lagi
:Turunkan Tantangan Kode PKCE (SHA256);
end fork
:Alihkan Browser ke Server Otorisasi dengan Tantangan;
|Server Otorisasi|
:Permintaan Login & Persetujuan Pengguna;
|Pengguna|
:Setujui Ruang Lingkup & Otorisasi;
|Server Otorisasi|
:Keluaran Kode Otorisasi Berumur Pendek;
:Alihkan ke URI Alih Alamat Klien;
|Aplikasi Klien (SPA)|
:Ekstrak Kode Otorisasi;
:Kirim Kode + Verifier Kode PKCE ke Titik Akhir Token;
|Server Otorisasi|
:Verifikasi Verifier Kode terhadap Tantangan Kode;
jika (Verifikasi Berhasil?) maka ([Ya])
:Keluaran Token Akses & Token Segar;
|Aplikasi Klien (SPA)|
:Simpan Token Akses di Memori;
:Ambil Profil Pengguna Dilindungi;
selain ([Gagal])
|Aplikasi Klien (SPA)|
:Tampilkan Kesalahan Otorisasi;
endif
stop
@enduml
Petunjuk Chatbot AI:
“Buat diagram aktivitas untuk Alur Kode Otorisasi OAuth 2.0 dengan PKCE. Tunjukkan pembuatan paralel code_verifier dan code_challenge, alih alamat ke Server Otorisasi, persetujuan pengguna, penukaran kode, dan verifikasi token.”
Contoh 3: Validasi Token JWT & Alur Pembaruan Diam-diam
Mengelola otorisasi API secara aman memerlukan validasi JSON Web Tokens (JWT) pada setiap permintaan dan memperbarui token yang telah kedaluwarsa secara diam-diam melalui token pembaruan latar belakang tanpa mengganggu pengalaman pengguna.
Konsep Pemodelan Kunci:
- Lingkaran Pemulihan Asinkron:Meminta token akses baru ketika
401 Tidak Diizinkanrespons dikesampingkan. - Penanganan Kedaluwarsa Sesi:Mengosongkan penyimpanan lokal dan mengalihkan ke halaman login ketika token pembaruan sendiri kedaluwarsa.
Kode PlantUML:
@startuml
|Aplikasi Klien|
start
:Kirim Permintaan API dengan Token Bearer;
|Gateway API|
:Periksa Header Otorisasi;
jika (Token Valid & Tidak Kedaluwarsa?) maka ([Valid])
:Teruskan Permintaan ke Mikroservis;
|Aplikasi Klien|
:Terima Data Muatan API;
stop
selain ([Kedaluwarsa / 401])
|Aplikasi Klien|
:Tangkap Kesalahan 401;
:Kirim Token Pembaruan ke Titik Akhir Otorisasi;
|API Otorisasi|
jika (Token Pembaruan Valid?) maka ([Ya])
:Keluaran Token Akses Baru;
|Aplikasi Klien|
:Perbarui Token Akses di Memori;
:Coba Ulang Permintaan API Asli;
stop
selain ([Kedaluwarsa / Dicabut])
|Aplikasi Klien|
:Hapus Token yang Disimpan;
:Alihkan Pengguna ke Layar Login;
stop
endif
endif
@enduml
Petunjuk Chatbot AI:
“Hasilkan diagram aktivitas yang menunjukkan validasi token JWT dan pembaruan token diam-diam. Jika token akses valid, sediakan muatan API. Jika kedaluwarsa (401), coba lakukan pembaruan token diam-diam. Jika token pembaruan juga kedaluwarsa, kosongkan penyimpanan lokal dan alihkan ke layar login.”
Rekayasa Prompt untuk Alur Kerja Keamanan & Otorisasi
Ketika memodelkan protokol keamanan dengan alat diagram aktivitas AI, penggunaan frasa yang tepat menjamin bahwa batas keamanan formal dipetakan secara bersih:
- Sebutkan Artefak Keamanan yang Tepat:Secara eksplisit sebutkan token, kode verifikasi, dan hash (contohnya, “token akses JWT”, “tantangan_kode”, “hash bcrypt”) sehingga AI menandai node dengan benar.
- Tentukan Jalur Bahagia dan Tidak Bahagia: Tentukan alur kegagalan secara eksplisit (misalnya, “Jika MFA gagal, tampilkan pesan kesalahan. Jika batas kecepatan dilampaui, kembalikan 429 Terlalu Banyak Permintaan”).
- Tentukan Batas Kepercayaan: Gunakan swimlanes untuk membedakan eksekusi sisi klien (browser/mobile app yang tidak dapat dipercaya) dari eksekusi sisi server (gateway API/database yang dapat dipercaya).
Menjembatani Generasi AI dengan Diagram sebagai Kode di Visual Paradigm
Merancang arsitektur keamanan membutuhkan iterasi cepat yang dipasangkan dengan kontrol versi yang ketat. The Chatbot Diagram AI di Visual Paradigm memberikan alur kerja akhir ke akhir yang lengkap:
- Generasi Diagram Otorisasi Secara Percakapan: Beri petunjuk alat UML AI dengan protokol keamanan yang kompleks, dan terima kode PlantUML atau Mermaid yang secara sintaksis valid dalam hitungan detik.
- Sunting dengan VPasCode: Ekspor diagram otorisasi yang dihasilkan langsung ke dalam VPasCode untuk melakukan penyempurnaan.
- SOP Keamanan di OpenDocs: Sisipkan diagram aktivitas ke dalam OpenDocs untuk membuat tinjauan arsitektur keamanan yang komprehensif, panduan onboarding pengembang, dan dokumentasi audit SOC 2 / ISO 27001.
- Berbagi Sesi Interaktif: Bagikan URL sesi obrolan langsung dengan rekan pengembang dan auditor keamanan untuk umpan balik kolaboratif yang cepat.
Rasakan pemodelan AI percakapan di web melalui Edisi Deluxe VP Online atau di dalam lingkungan IDE desktop Anda dengan Edisi Profesional VP Desktop.
Pertanyaan yang Sering Diajukan
Mengapa memilih Diagram Aktivitas UML daripada Diagram Urutan untuk OAuth 2.0?
Sementara Diagram Urutan unggul dalam menunjukkan pengiriman pesan yang diurutkan menurut waktu antar sistem, Diagram Aktivitas lebih unggul dalam menggambarkan logika keputusan, pembaruan token bersyarat, dan tugas bersamaan (seperti generasi hash PKCE paralel).
Apakah saya bisa mengekspor diagram otentikasi yang dihasilkan untuk diedit di VP Desktop?
Ya. Diagram yang dihasilkan oleh Chatbot Diagram AI dapat dibuka dan diedit langsung di Visual Paradigm Desktop atau Visual Paradigm Online untuk penyempurnaan visual lebih lanjut.
Apakah chatbot AI menjamin tingkat kesalahan sintaks yang rendah untuk diagram keamanan?
Ya. Berbeda dengan alat chat AI umum, Visual Paradigm menggunakan model khusus yang telah dilatih dengan baik yang dirancang khusus untuk menghasilkan sintaks diagram UML dan PlantUML yang valid dengan tingkat kesalahan yang sangat rendah.












