- 認証と認可の基本
- アイデンティティ (Identity) の概念
[[アイデンティティと属性]]
[[デジタルアイデンティティ]]
[[ID管理 (Identity Management - IdM / Identity and Access Management - IAM)]]
- 認証と認可の重要性 (セキュリティの第一防衛線)
- 認証・認可の基本フロー (ログイン→セッション/トークン発行→リソースへのアクセス要求→認可チェック)
- 知識情報 (Something you know): パスワード, PIN, 秘密の質問
- 所持情報 (Something you have): スマートフォン, ハードウェアトークン, スマートカード, ICカード
- 生体情報 (Something you are): 指紋, 顔, 虹彩, 静脈
- シングルファクタ認証 (SFA) vs. 多要素認証 (MFA)
- パスワード認証の仕組み (ユーザー名とパスワードの検証)
- パスワードの安全な保存方法 MOC
[[平文保存 (絶対禁止)]]
[[ハッシュ化 (Hashing)]]
- ソルト (Salt) の使用 (レインボーテーブル攻撃対策)
- キー派生関数 (KDF) (ブルートフォース攻撃対策)
[[bcrypt]]
[[scrypt]]
[[Argon2]] (現在の推奨)
[[PBKDF2]]
[[(オプション) ペッパー (Pepper) の使用]]
- パスワードポリシーの設計 (長さ、複雑性、有効期限の是非)
- 安全なパスワードリセット機能の実装 (トークンベースのリセットフロー)
- パスワードベース認証への攻撃
[[ブルートフォース攻撃 (Brute-force Attack)]]
[[辞書攻撃 (Dictionary Attack)]]
[[クレデンシャルスタッフィング (Credential Stuffing)]]
[[キーロガー (Keylogger)]]
[[フィッシング (Phishing)]]
- ブルートフォース攻撃対策
[[アカウントロックアウト]]
[[CAPTCHA / reCAPTCHA]]
[[レート制限]]
- MFAの定義と重要性
[[二要素認証 (2FA - Two-Factor Authentication)]]
- MFAの要素と手法
[[SMS/電話認証]] (利便性とSIMスワップのリスク)
[[ワンタイムパスワード (OTP - One-Time Password)]]
[[TOTP (Time-based OTP)]] (Google Authenticator, Microsoft Authenticatorなど)
[[HOTP (HMAC-based OTP)]]
[[プッシュ通知認証 (Push Notification)]]
[[ハードウェアトークン / セキュリティキー]] (FIDO/U2F)
[[生体認証 (指紋, 顔など)]]
[[MFAの実装とユーザーオンボーディング]]
[[リカバリーコード]]
- パスワードレス認証の概念と利点
- パスワードレス認証の手法
- トークンベース認証の仕組み (ステートレス認証)
- JSON Web Token (JWT) MOC
[[JWTの構造 (Header, Payload, Signature)]]
[[JWTのクレーム (Claims - iss, sub, aud, exp, nbf, iat, jti)]]
[[署名アルゴリズム (HMAC - HS256, RSA - RS256)]]
[[アクセストークン (Access Token) とリフレッシュトークン (Refresh Token)]]
[[JWTのセキュリティ考慮事項 (alg:none, 署名検証, 有効期限, 失効, XSS対策)]]
[[JWTのストレージ (Cookie vs. localStorage)]]
[[セッションベース認証 vs. トークンベース認証]]
[[APIキー (API Keys)]] (単純だがセキュリティは限定的)
[[Basic認証 (Basic Authentication)]] (非推奨)
[[HMAC認証 (HMAC Authentication)]]
[[OAuth 2.0によるAPI認証]]
[[mTLS (Mutual TLS) によるクライアント認証]]
[[プリンシパル (Principal), パーミッション (Permission), リソース (Resource)]]
[[アクセスポリシー (Access Policy)]]
[[最小権限の原則 (Principle of Least Privilege)]] (再掲・認可文脈)
[[デフォルト拒否 (Default Deny)]]
[[OAuth 2.0の目的 (ユーザーの同意に基づき、サードパーティアプリケーションに限定的なリソースアクセス権限を与える)]]
- OAuth 2.0のロール
[[リソースオーナー (Resource Owner)]] (ユーザー)
[[クライアント (Client)]] (アプリケーション)
[[認可サーバー (Authorization Server)]]
[[リソースサーバー (Resource Server)]]
- OAuth 2.0のトークン
[[アクセストークン (Access Token)]]
[[リフレッシュトークン (Refresh Token)]]
- OAuth 2.0の認可フロー (Grant Types) MOC
- 認可コードフロー (Authorization Code Flow) (サーバーサイドWebアプリ向け)
[[PKCE (Proof Key for Code Exchange) による拡張]] (モバイル/SPA向け)
[[インプリシットフロー (Implicit Flow)]] (レガシー、非推奨)
[[リソースオーナー・パスワード・クレデンシャルフロー (Resource Owner Password Credentials Flow)]] (非推奨)
[[クライアント・クレデンシャルフロー (Client Credentials Flow)]] (M2M通信向け)
[[(オプション) デバイス認可フロー (Device Authorization Flow)]]
- スコープ (Scopes) (権限の範囲)
- OAuth 2.0のセキュリティ考慮事項
[[リダイレクトURIの厳格な検証]]
[[stateパラメータによるCSRF対策]]
[[トークン漏洩対策]]
[[OIDCの定義 (OAuth 2.0を基盤とした認証レイヤー)]]
[[OIDCとOAuth 2.0の違い (認証 vs. 認可)]]
- IDトークン (ID Token)
[[IDトークンの形式 (JWT)]]
[[IDトークンのクレーム (iss, sub, aud, exp, iatなど)]]
- OIDCのフロー
[[認可コードフロー (Authorization Code Flow)]]
[[インプリシットフロー (Implicit Flow)]] (一部非推奨)
[[ハイブリッドフロー (Hybrid Flow)]]
- OIDCのエンドポイント
[[認可エンドポイント (Authorization Endpoint)]]
[[トークンエンドポイント (Token Endpoint)]]
[[UserInfoエンドポイント (UserInfo Endpoint)]]
[[OIDCのメタデータ (.well-known/openid-configuration)]]
[[OIDCのユースケース (ソーシャルログイン、SSO)]]
[[SAMLの定義 (XMLベースの認証・認可情報交換標準)]]
[[SAMLのユースケース (エンタープライズSSO)]]
- SAMLの主要コンポーネント
[[アサーション (Assertion)]]
[[プロトコル (Protocol)]]
[[バインディング (Binding)]]
- SAMLのフロー (SP-Initiated SSO, IdP-Initiated SSO)
[[SAMLとOIDCの比較]]
[[Kerberosの定義 (チケットベースのネットワーク認証プロトコル)]]
[[Kerberosのアーキテクチャ (KDC, AS, TGS)]]
[[Kerberosの認証フロー]]
[[Kerberosの利用例 (Active Directory)]]
[[LDAPの定義 (ディレクトリサービスへのアクセスプロトコル)]]
[[LDAPのデータモデル (DIT, DN, RDN, エントリ, 属性)]]
[[LDAPの操作 (bind, search, add, modify, delete)]]
[[LDAPの利用例 (中央集権的なユーザー情報管理)]]
[[FIDO Allianceの役割]]
[[WebAuthn (W3C標準) と CTAP (Client to Authenticator Protocol)]]
[[公開鍵暗号に基づく認証の仕組み]]
- ID管理 (Identity Management - IdM) / Identity and Access Management (IAM)
- セキュアな実装プラクティス
[[実績のあるライブラリやフレームワークの利用]]
[[認証・認可ロジックの集中管理]]
[[タイミング攻撃対策]]
- セッション管理のセキュリティ (再掲・重要)
[[セキュアなCookie属性 (HttpOnly, Secure, SameSite)]]
[[セッション固定化対策]]
[[セッションハイジャック対策]]
- Identity as a Service (IDaaS)
[[IDaaSの定義と利点]]
[[主要なIDaaSプロバイダー (Okta, Auth0 (by Okta), Microsoft Entra ID, Ping Identity)]]
- ロギング、監査、監視
[[認証成功/失敗、認可失敗、パスワード変更などのイベントをログに記録]]
[[不審なアクティビティの監視とアラート]]
[[監査証跡 (Audit Trail)]]
[[パスワードの平文保存]]
[[不安全なパスワードリセット]]
[[セッションIDのURL埋め込み]]
[[エラーメッセージによるユーザー存在有無の漏洩]]
[[クライアント側のみでの認可チェック]]
[[長時間有効なアクセストークン]]
[[リフレッシュトークンの不適切な管理]]
[[OAuth 2.0のImplicitフローの不適切な使用]]
[[自作の暗号/認証プロトコルの使用]]