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統合のドキュメント、セキュリティアーキテクチャレビューの作成。

試してみる — PlantUML Editor

フルツールを開く