Slide 1

Slide 1 text

Copyright © nextbeat All Rights Reserved Nextbeat における Auth0 Copyright © nextbeat All Rights Reserved Nextbeat CTO 阿部雅哉

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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 の採用理由

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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 コマンドによる存在確認

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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 を利用した存在確認までは行わない )

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

We are hiring! 全員CTO 全員が技術戦略・意思決定に関わる組織