クイズの説明
Step 4「ID管理基盤を構築しよう」の理解度を確認します。ゼロトラスト、OAuth 2.0、認可モデル、フェデレーション、SSOについて問います。
合格ライン: 80%(5問中4問正解)
問題
Q1. ゼロトラストアーキテクチャ
ゼロトラストアーキテクチャの原則として最も適切なものはどれですか?
- A. VPNを使ってすべてのアクセスを社内ネットワーク経由にする
- B. ファイアウォールの内側にあるシステムは信頼し、外部からのアクセスのみ検証する
- C. ネットワーク位置に関係なく、すべてのアクセスをID + コンテキストで検証する
- D. すべてのアクセスをブロックし、明示的にホワイトリストに登録されたIPアドレスのみ許可する
答えを見る
正解: C
ゼロトラストアーキテクチャの核心は「ネットワーク位置を信頼しない」ことです。VPNの内側にいても、その人が本当に正当なユーザーか、そのデバイスは安全か、そのリクエストは正当な目的か、を毎回検証します。A(VPN経由の強制)は境界型セキュリティの発想です。B(内側は信頼)はゼロトラストの対極です。D(IPホワイトリスト)は静的な制御でありゼロトラストのダイナミックな検証とは異なります。ゼロトラストでは、ユーザーID + デバイスの状態 + 場所 + 時間 + 行動パターンの組み合わせで動的にアクセスを判定します。
Q2. OAuth 2.0 のフロー選定
SPA(シングルページアプリケーション)からバックエンドAPIにアクセスする場合、推奨されるOAuth 2.0のフローはどれですか?
- A. Implicit Grant Flow
- B. Resource Owner Password Credentials Flow
- C. Authorization Code Flow with PKCE
- D. Client Credentials Flow
答えを見る
正解: C
SPAからのAPI認証にはAuthorization Code Flow with PKCEが推奨されます。PKCEにより、認可コードが横取りされてもトークンの取得を防止できます。A(Implicit Grant)はアクセストークンがURLフラグメントに含まれるため、ブラウザ履歴やRefererヘッダーで漏洩するリスクがあり、現在は非推奨です。B(Resource Owner Password)はパスワードをSPAに渡す必要があり、セキュリティ上問題があります。D(Client Credentials)はサーバー間通信(M2M)用であり、SPAではClient Secretを安全に保持できないため適用できません。
Q3. 認可モデルの選定
以下の要件を持つBtoB SaaSシステムに最も適切な認可モデルはどれですか?
- 3,000社のテナントが存在し、テナント間のデータ分離が必須
- 各テナント内に4つのロール(owner, admin, member, viewer)が存在
- テナントAのadminがテナントBのデータにアクセスできてはならない
- A. RBAC(ロールベースアクセス制御)のみ
- B. RBAC + テナントIDによるABAC的フィルタリング
- C. ReBAC(関係ベースアクセス制御)のみ
- D. ネットワークレベルのIPフィルタリング
答えを見る
正解: B
この要件では、ロールベースの権限制御(4ロール)とテナント分離の両方が必要です。RBACのみ(A)ではテナント分離ができず、「テナントAのadminがテナントBのデータにアクセスできない」という要件を満たせません。RBAC + テナントIDフィルタリング(B)では、OPAポリシー等で「ロールの権限チェック AND テナントIDの一致チェック」を実現できます。ReBAC(C)はGoogle DriveやGitHubのような複雑な共有モデルに適していますが、この要件にはオーバースペックです。D(IPフィルタリング)はテナント分離の手段としては不適切です。
Q4. JWTのセキュリティ
JWTの署名に関するセキュリティベストプラクティスとして最も重要なものはどれですか?
- A. JWTのペイロードを暗号化して機密情報を含める
- B. サーバー側で許可するアルゴリズム(alg)を固定し、algヘッダーの値をそのまま信頼しない
- C. JWTのTTLを365日に設定してユーザーの再ログインを減らす
- D. JWTの署名方式にHS256を使い、全サービスで同じ共有鍵を使用する
答えを見る
正解: B
JWTの「alg
」攻撃は、攻撃者がalgヘッダーを「none」に変更し、署名なしのJWTをサーバーに送信することで認証をバイパスする攻撃です。サーバー側で許可するアルゴリズムを固定(例: ES256のみ)し、JWTのalgヘッダーの値をそのまま信頼しないことが最も重要です。A(ペイロードの暗号化)はJWEで可能ですが、JWTに機密情報を含めること自体を避けるべきです。C(TTL 365日)はトークン漏洩時の影響期間が長すぎます(推奨: 15分)。D(全サービスで共有鍵)は1つのサービスが侵害されると全サービスに影響が波及します。Q5. エンタープライズSSO
BtoB SaaSがエンタープライズSSO(SAML/OIDC連携)を提供する際に、SCIMプロトコルが重要な理由として最も適切なものはどれですか?
- A. SAMLのパフォーマンスを向上させるため
- B. 顧客企業のIdPでのユーザーの作成・更新・削除を、SaaS側に自動的に反映させるため
- C. SSO認証時のMFAを自動的に実施するため
- D. 顧客企業のファイアウォール設定を自動的に更新するため
答えを見る
正解: B
SCIM(System for Cross-domain Identity Management)は、IdP側でのユーザーの追加・変更・削除をSP(SaaS)側に自動的に同期するプロトコルです。顧客企業の社員が入社すればSaaS上のアカウントが自動作成され、異動すればロールが自動変更され、退職すればアカウントが自動無効化されます。SCIMがないと、退職者のアカウント削除が手動になり、数日〜数週間の遅延が生じる可能性があります。この遅延期間中に退職者が不正アクセスするリスクがあり、特に機密データを扱うSaaSでは重大なセキュリティリスクです。
結果
合格(4問以上正解)
Step 4の内容をよく理解しています。ゼロトラスト、OAuth 2.0/OIDC、認可モデル、エンタープライズSSOの知識を身につけました。次のStep 5「セキュリティメトリクスを定義しよう」に進みましょう。
不合格(3問以下正解)
Step 4の内容を復習しましょう。特に以下のポイントを重点的に確認してください:
- ゼロトラスト — ネットワーク位置を信頼しない、すべてのアクセスを検証
- OAuth 2.0 — SPA向けのPKCE、各フローの適用場面
- 認可モデル — RBAC + テナント分離、マルチテナント認可
- JWT — alg固定、短いTTL、iss/aud検証
- SSO/SCIM — エンタープライズ顧客への対応
推定所要時間: 30分