Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ヌーラボプロダクトを支える Nulab Account 認証の世界 / The worl...

ヌーラボプロダクトを支える Nulab Account 認証の世界 / The world of Nulab Account certification that supports products

2020年12月5日(土)に開催されたNuConの登壇資料です。

▼NuCon2020 公式サイト
https://nucon.nulab.com/2020/

▼発表アーカイブ
https://www.youtube.com/watch?v=KXogZS5awbc&t=16634s

株式会社ヌーラボ

December 05, 2020
Tweet

More Decks by 株式会社ヌーラボ

Other Decks in Technology

Transcript

  1. パスワード認証 • Spring Security を使用 • DBのデータの持ち方が特殊なので、ちょっとカスタマイズ • パスワードは PBKDF2

    (Password-Based Key Derivation Function 2) で ソルト付きハッシュとして格納 2 二要素認証 パスワード TOTP SMS バックアップ コード WebAuthn WebAuthn SAML 自動ログイン
  2. TOTP (Time-based One-Time Password) • アプリ (Google Authenticator 等) に表示されたコードを入力して認証

    • 1 分ごとに新しいコードに更新 • コードの検証部分は自前で実装 • RFC6238 3 二要素認証 パスワード TOTP SMS バックアップ コード WebAuthn WebAuthn SAML 自動ログイン
  3. バックアップ コード • 事前に生成されたコード (使い捨て) で認証 • 携帯/スマホが故障した時の緊急ログイン用 • コードの生成部分は自前で実装

    • SecureRandom で生成 5 二要素認証 パスワード TOTP SMS バックアップ コード WebAuthn WebAuthn SAML 自動ログイン
  4. WebAuthn • PC やスマホの生体認証、専用のセキュリティ デバイスで認証 • 単独で二要素認証の要件を満たせる (所有 & 生体/知識)

    場合、パスワードレスにすることも可能 • 生体情報や PIN 等による本人確認に対応していない場合でも二要素認証用のデバイスとして使用可能 • フロントエンドはブラウザの API を直接使用、バックエンドは Yubico のライブラリを使用 6 二要素認証 パスワード TOTP SMS バックアップ コード WebAuthn WebAuthn SAML 自動ログイン
  5. SAML • SAML 2.0 に対応した外部 IdP (G Suite、AzureAD 等) を使用して認証

    • パスワードの個別管理が不要に! • IdP とのやり取りは OneLogin のライブラリを使用 7 二要素認証 パスワード TOTP SMS バックアップ コード WebAuthn WebAuthn SAML 自動ログイン
  6. 自動ログイン • Cookie に書き込まれた認証情報 (使い捨て) を使用して認証 • Spring Security をベースに自前で実装

    • Spring Security の実装は同時アクセス時に問題が発生したため 8 二要素認証 パスワード TOTP SMS バックアップ コード WebAuthn WebAuthn SAML 自動ログイン