PlantUML シーケンス図: OAuth2認証フロー
PlantUMLシーケンス図でOAuth2認証フローをモデル化。認可コードグラント、トークン交換、APIアクセスパターンを解説。
Sequence Diagrams
詳細な説明
PlantUMLでOAuth2認証フロー
シーケンス図はOAuth2フローのドキュメントに最適です。ユーザー、クライアントアプリケーション、認可サーバー、リソースサーバー間の複数パーティ交換を明確に示します。
認可コードグラント
@startuml
title OAuth2 認可コードグラント
actor User
participant "Client App" as Client
participant "Auth Server" as Auth
participant "Resource Server" as RS
User -> Client: 「ログイン」をクリック
Client -> Auth: GET /authorize?response_type=code
Auth -> User: ログインページを表示
User -> Auth: 認証情報を入力
Auth -> User: 認可コード(リダイレクト)
User -> Client: ?code=abc123でリダイレクト
Client -> Auth: POST /token (code + client_secret)
Auth --> Client: アクセストークン + リフレッシュトークン
Client -> RS: GET /api/data (Bearerトークン)
RS --> Client: 保護されたリソース
Client --> User: データを表示
@enduml
主要な要素
参加者: OAuthフローの各当事者が独自のライフラインを持ちます。人間のユーザーにactorなどのステレオタイプを使用すると、図がすぐに読みやすくなります。
メッセージラベル: ラベルにHTTPメソッドとパスを含めます(例: POST /token)。読者が図をAPI呼び出しに直接マッピングできます。
返却メッセージ: レスポンスには破線矢印(-->)を使用して、リクエストと視覚的に区別します。
ノートの追加
note right of Auth
client_id、client_secret、
認可コードを検証
end note
Alt/Elseによるグループ化
alt トークン有効
RS --> Client: 200 OK + data
else トークン期限切れ
RS --> Client: 401 Unauthorized
Client -> Auth: POST /token (refresh_token)
Auth --> Client: 新しいアクセストークン
end
ユースケース
認証モジュールの技術設計書の作成、フロントエンドチームへのOAuth2フローの説明、エンタープライズクライアント向けSSO統合のドキュメント、セキュリティアーキテクチャレビューの作成。