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

NextbeatにおけるAuth0/NextbeatTechBar-20230622-1

 NextbeatにおけるAuth0/NextbeatTechBar-20230622-1

2023年6月22日に開催された「Nextbeat Tech Bar:Auth0 by Oktaはやっぱりすごい」にて発表した資料です。

nextbeat

June 26, 2023
Tweet

More Decks by nextbeat

Other Decks in Technology

Transcript

  1. Copyright © nextbeat All Rights Reserved Nextbeat における Auth0 Copyright

    © nextbeat All Rights Reserved Nextbeat CTO 阿部雅哉
  2. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 2 自己紹介 株式会社ネクストビート CTO 阿部雅哉 2013/4 ~ DeNA • ゲーム向けのBaaS開発 • 認証・認可基盤 (OIDC, OAuth2) 2019/1 ~ ネクストビート • EM & おもてなしHR 開発リード • 社内共通ライブラリ・ API 開発 • 2022年1月よりCTO
  3. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 3 目次 • Auth0 の利用プロダクト • Auth0 の採用理由 • 保育士バンク! での Auth0 利用例の紹介 ◦ Pre User Registration Action におけるメールアドレス検証 ◦ AWS 経由でのアラート通知構成 ◦ Progressive Profiling
  4. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 4 Nextbeat での Auth0 利用プロダクト 保育士バンク!プラットフォーム (toB) 保育業界に取り巻く人材の流れの停滞課題にシームレスかつワンストップに解決 その法人向けサービスの認証基盤に Auth0 採用 (※一部移行予定 ) 法人基盤でのログイン画面
  5. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 5 Nextbeat での Auth0 利用プロダクト 保育士バンク!プラットフォーム (toC) 保育士というキャリアの一生(就職、就労、転職)をサポート その ID & 認証基盤にAuth0 採用 (※新卒は今後移行予定 )
  6. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 6 Auth0 の採用理由 課題 • プラットフォーム戦略による共通 ID & 認 証認可の必要性 • 本質的なビジネス課題の解決に リ ソースを注力 • 高度なセキュリティ & 可用性を確保 • 認証フローのカスタマイズ性 • 技術課題への解決策 Auth0 が持つ解決策 • OpenID Connect のサポート      • New Universal Login etc..        • 多様な MFA, Attack Protection • Actions による拡張 • サポート / ドキュメントの充実
  7. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 7 Auth0 の採用理由 今後 Auth0 の新機能開発は New Universal Login のみ (個人的に) Classic Universal Login を下記ケースのみの選択肢 • New Universal Login ではビジネス要求を実現するフローが実装不可 • Classic Universal Login にしかない機能を利用したい Classic Universal Login との比較はこちら New Universal Login の採用理由
  8. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 8 目次 • Auth0 の利用プロダクト • Auth0 の採用理由 • 保育士バンク! での Auth0 利用例の紹介 ◦ Pre User Registration Action におけるメールアドレス検証 ◦ AWS 経由でのアラート通知構成 ◦ Progressive Profiling
  9. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 9 Pre User Registration Action におけるメールアドレス検証 リスクの例 • メールの不達 ◦ 重要メールの不達 ◦ パスワードリセット不可 • ドッペルゲンガードメインへの送信 ◦ 個人情報流出の危険 メールアドレス検証の手段 • 登録用リンクを入力メールアドレスに送信 • 登録途中に検証コード送信 & 入力 • etc.. 登録時のメールアドレス誤入力のリスクと対策 ビジネス / UX / セキュリティ要件から選択 今回のプロダクトでは ... • 事前検証なしのリスク低 • 途中離脱の最小化 → 登録数増に繋げる • 最大限ユーザにメールが届く状態の担保 ◦ (パスワードリセット可能を含め)
  10. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 10 Pre User Registration Action におけるメールアドレス検証 保育士バンク!における登録画面でのメールアドレス事前検証 下記3つの要素を組み合わせること 先程のUX を実現 • Pre User Registration Action • SendGrid Email Validation API • STMP の LCPT コマンドによる存在確認
  11. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 11 Pre User Registration Action におけるメールアドレス検証 保育士バンク!における登録画面でのメールアドレス事前検証 Pre User Registration Action Auth0 Action ユーザ登録前に任意のロジック実行可能 用途の例 • ユーザ情報の変更 • 特定の条件化における登録 NG → メールアドレスが不正の場合に登録 NG 
  12. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 12 Pre User Registration Action におけるメールアドレス検証 保育士バンク!における登録画面でのメールアドレス事前検証 SendGrid Email Validation API リアルタイムで下記の検証可能 • ドメインのタイポ (ex. gamil.com) • MX or Aレコードの存在確認 • 共有 / 捨てメアド • (機械学習モデルによるスコア化 ) (SMTP を利用した存在確認までは行わない )
  13. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 13 Pre User Registration Action におけるメールアドレス検証 保育士バンク!における登録画面でのメールアドレス事前検証 SMTP による存在確認 RCPT TO のレスポンスコードで存在確認 • 250 = メールアドレス存在 • 550 5.1.1 = 存在しない
  14. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 14 Pre User Registration Action におけるメールアドレス検証 保育士バンク!における登録画面のエラー例
  15. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 15 Pre User Registration Action におけるメールアドレス検証 リリース時に修正したこと & 手法の限界 • SendGrid API で au.com -> aol.com と間違われる • CATCH ALL 設定のメールサーバでは存在確認不可 ◦ 存在しない場合でも 250 ◦ yahoo.co.jp / au.com / ez.web.jp etc.
  16. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 16 目次 • Auth0 の利用プロダクト • Auth0 の採用理由 • 保育士バンク! での Auth0 利用例の紹介 ◦ Pre User Registration Action におけるメールアドレス検証 ◦ AWS 経由でのアラート通知構成 ◦ Progressive Profiling
  17. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 17 AWS 経由でのアラート発火構成 Auth0 の Log Streaming とは? • Auth0 で発生したイベントは          Log Streaming 機能で各ストリームに配信可能 • 必要なログもフィルター可能 • 2個ストリームを設定可能 (※Enterpriseのみ) Log Streaming
  18. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 18 AWS 経由でのアラート発火構成 Auth0 上で起きたアラートを通知したい 今回のプロダクトで実現したかったこと • シンプルにエラー発生時の通知 • 現構成と同様 slack 通知 • 不要な通知のフィルターをしたい ◦ 存在しないユーザでログイン ◦ 登録済みのユーザでサインアップ ◦ パスワード入力ミス ◦ etc.. 現行のアラートが起きた際のslack 通知例
  19. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 19 AWS 経由でのアラート発火構成 今回実装した構成 役割 • Auth0 Log Streming:ログの 1次フィルター & ストリームに通知 • Event Bridge :ログの 2次フィルター • Lambda :ログ加工 & slack に POST Log Streaming AWS Lambda
  20. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 20 AWS 経由でのアラート発火構成 Auth0 のログ 1次フィルター Auth0 の Log Streaming • 各イベントカテゴリ単位で on/off 可能 • (右図) ログイン成功イベント off ◦ エラー通知に不要なため • 現状イベントコードでのフィルターは不可
  21. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 21 特定のイベントコード & Description でのフィルター • fp = パスワード間違いを通知しても対処不可のため除外 • Signup Failer には fs という単一のコードしかない ◦ すでに存在するユーザのため失敗したか、先程の Pre User Restration で何かしら失敗し たか判断がつかない → Description で除外 AWS 経由でのアラート発火構成 Auth0 のログ 2次フィルター
  22. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 22 単に Slack で見やすいように加工して通知 2週間ほど運用してみて ... 適切にフィルターすれば、すぐに検知が必要な ログの確認はできる状態 AWS 経由でのアラート発火構成 Lambda でイベント加工
  23. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 23 目次 • Auth0 の利用プロダクト • Auth0 の採用理由 • 保育士バンク! での Auth0 利用例の紹介 ◦ Pre User Registration Action におけるメールアドレス検証 ◦ AWS 経由でのアラート通知構成 ◦ Progressive Profiling
  24. Copyright © nextbeat All Rights Reserved Copyright © nextbeat All

    Rights Reserved 24 Progressive Profiling https://medium.com/nextbeat-engineering/auth0-actions%E3%81%A7-progressive-profiling-%E3%82%92%E5%AE%9F%E8%A3%85% E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F-8be443a9c789