クイズの説明
Step 3で学んだ内容の理解度をチェックします。
- 全8問
- 合格ライン: 80%(7問正解)
- 不合格の場合は復習してから再挑戦してください
問題
Q1. JWTベースの認証で最も大きな課題はどれですか?
- A) トークンのサイズが大きすぎること
- B) 発行後のリアルタイムな無効化が困難なこと
- C) 暗号化ができないこと
- D) モバイルアプリで使用できないこと
答えを見る
正解: B
JWTはステートレスであるため、一度発行したトークンをリアルタイムに無効化することが困難です。トークンの有効期限が切れるまで有効なままです。対策として、短い有効期限の設定やブラックリストの管理が必要です。
Q2. OAuth 2.0とOIDCの関係として正しいものはどれですか?
- A) 両者は全く異なるプロトコルで互換性がない
- B) OIDCはOAuth 2.0の上に認証レイヤーを追加した仕様
- C) OAuth 2.0はOIDCの後継プロトコル
- D) OIDCはOAuth 2.0の軽量版
答えを見る
正解: B
OpenID Connect(OIDC)はOAuth 2.0の認可フレームワークの上に認証レイヤーを追加した仕様です。OAuth 2.0だけでは「誰が認可したか」(認証)を標準的に確認できませんが、OIDCはIDトークンを追加することでユーザーの身元確認を可能にします。
Q3. ゼロトラストの基本原則「Never Trust, Always Verify」の意味として正しいものはどれですか?
- A) 全てのユーザーのアクセスを拒否する
- B) ネットワークの場所に関係なく、全てのアクセスを常に検証する
- C) 外部ネットワークからのアクセスのみ検証する
- D) 一度認証したユーザーは再検証しない
答えを見る
正解: B
ゼロトラストの「Never Trust, Always Verify」は、ネットワークの内外に関係なく、全てのアクセスを常に検証するという原則です。社内ネットワークからのアクセスであっても信頼せず、認証・認可・デバイス状態などを検証します。
Q4. RBACの説明として正しいものはどれですか?
- A) ユーザーの属性(部署、クリアランス等)に基づいてアクセスを制御する
- B) ユーザーにロール(役割)を割り当て、ロールに対して権限を定義する
- C) リソースの属性に基づいてアクセスを制御する
- D) 時間帯に基づいてアクセスを制御する
答えを見る
正解: B
RBAC(Role-Based Access Control)は、ユーザーにロール(役割)を割り当て、ロールに対して権限を定義するモデルです。属性に基づく制御はABAC、時間帯に基づく制御はABACの一部です。
Q5. ABACがRBACより優れている点はどれですか?
- A) 実装がシンプルである
- B) デバッグが容易である
- C) コンテキスト(時間、場所、デバイス等)に基づく動的な制御ができる
- D) パフォーマンスが高い
答えを見る
正解: C
ABAC(Attribute-Based Access Control)の最大の利点は、ユーザー属性、リソース属性、環境属性(時間、場所、デバイス等)の組み合わせによる動的で細粒度のアクセス制御ができることです。RBACより複雑ですが、柔軟性が高いです。
Q6. マルチテナントのテナント分離で、行レベル分離(共有テーブル)の最大のリスクはどれですか?
- A) パフォーマンスが低下すること
- B) テナントごとのカスタマイズが困難なこと
- C) 実装ミスにより他テナントのデータが漏洩すること
- D) データベースのサイズが増大すること
答えを見る
正解: C
行レベル分離では同一テーブルにtenant_idカラムで分離するため、クエリに適切なフィルタリングが漏れると他テナントのデータが漏洩するリスクがあります。PostgreSQLのRow Level Security(RLS)を使用することで、DB層で強制的にフィルタリングが可能です。
Q7. セッションベース認証でCSRF対策が必要な理由はどれですか?
- A) セッションIDが暗号化されていないため
- B) ブラウザがCookieを自動的にリクエストに含めるため
- C) セッションの有効期限が長いため
- D) セッションIDが推測しやすいため
答えを見る
正解: B
セッションベース認証ではCookieにセッションIDを保存しますが、ブラウザはCookieを同一ドメインへのリクエストに自動的に含めます。そのため、攻撃者が別サイトからリクエストを発行しても、Cookieが自動送信されて認証済みとして処理されてしまうリスクがあります。
Q8. ゼロトラストのマイクロセグメンテーションの説明として正しいものはどれですか?
- A) ネットワークを細かく分割し、各セグメント間の通信を制御する
- B) アプリケーションを小さなマイクロサービスに分割する
- C) データベースをテナントごとに分離する
- D) ユーザーインターフェースをコンポーネントに分割する
答えを見る
正解: A
マイクロセグメンテーションは、ネットワークを細かいセグメントに分割し、セグメント間の通信を厳密に制御する技術です。サービス間通信にmTLSや認可ポリシーを適用し、不要な通信を遮断します。侵害が発生しても横展開(ラテラルムーブメント)を防ぎます。
結果
7問以上正解の場合
合格です。おめでとうございます。
Step 3「認証・認可アーキテクチャ」を完了しました。 次は Step 4「データ保護と暗号化」に進みましょう。
6問以下の場合
もう少し復習しましょう。
間違えた問題の内容を、該当するセクションで復習してください:
| 問題 | 復習セクション |
|---|---|
| Q1, Q2 | step3_1 認証方式の比較 |
| Q3, Q8 | step3_2 ゼロトラストアーキテクチャ |
| Q4, Q5 | step3_3 RBAC/ABACの設計 |
| Q6 | step3_4 マルチテナントセキュリティ |
| Q7 | step3_1 セッションベース認証 |
次のステップへ
Step 4: データ保護と暗号化(5時間)
認証・認可を学んだ次は、データそのものを守る方法を学びます。暗号化、シークレット管理、通信の保護を包括的に設計しましょう。
推定所要時間: 30分