Auth0のログインのログデータを解析する手段 #Auth0JP

Auth0のログデータ

Auth0の認証・認可機能を使ってサービスを立ち上げた後、実際に運用していく上で ログデータを収集し解析すること が必要になってくると思います。例えばどのようなユーザーがログインしているのか、ログインが頻繁な時間帯はいつなのか、あやしいログイン操作はないか、などなど…

本記事では、Auth0に蓄積される ログインにまつわるログデータを解析すること をテーマにおき、どのような手段が利用できるのか簡単にまとめてみたいと思います。

Auth0のログ機能

まずAuth0のログ機能はどのような機能なのか、簡単に確認していきましょう。

  • DashboardまたはManagement APIから取得可能
  • 例えば以下の用途での利用が想定されている
    • 地域ごとで頻繁に利用されている時間帯を調べる
    • ターゲットオーディエンスの特定
    • ログインに関するユーザー行動パターンの検出
    • IPアドレスベースでの問題のあるユーザーの検出
    • 異常を検知するトリガーを発生させる頻度の調整
    • 開発者によるデバッグ
  • プランによってログの保持期間が決まっている
    • Free : 2日
    • Developer : 2日
    • Developer Pro : 10日
    • Enterprise : 30日
  • ログデータはページングされており、全ログデータの取得はできない(自分自身でのカスタマイズが必要)

ログデータを解析する手段

基本的にはDashboardまたはManagement APIを利用する形ですが、よりログを解析しやすくするため他のサービスへのエクスポートもサポートされています。

Dashboard

Dashboardからぽちぽち検索する方法です。

何も事前準備することなく、Auth0のDashboardにアクセスするだけで利用できます。ユーザーインターフェースも使いやすいので、ITリテラシーが高くない方でも調べられるメリットがあります。

多機能なことはできないので、Dashboardで提供されている機能の範囲以上のことをやりたい場合は他の手段を併用する必要があります。

Management API

Management APIを直接利用する方法です。柔軟に検索できますが、自分でAPIのリクエストパラメータを付けて取得する必要があります。直接叩く方法は、ピンポイントで直近のログを検索したい場合などに適しているでしょう。もし運用で使いたいと考えるならば、スクリプトなどを自分で組む必要があります。

Extensionを使った外部サービスへのエクスポート

Auth0のExtension機能を利用すると、外部のサービスにログデータをエクスポートすることができます。エクスポートすることで、Auth0のログデータの保持期間以上のログデータの保持、より多機能な検索・分析、アラートなどといった機能拡張ができます。

いずれの手段を使う場合も、Auth0のログはバッチ処理によりエクスポートされる点に留意してください(リアルタイム性能を求める場合はある程度の限界がある)。

Azure Application Insights

AWS CloudWatch

Azure Blob Storage

Logentries

Loggly

Logstash

Mixpanel

Papertrail

Sumo Logic

Splunk

ログインのログデータとして利用する

Auth0は認証・認可に特化したサービスですので、あくまで認証・認可に関するログデータしか持っておりません。

実際のところ、アプリケーションに関わる部分はアプリケーション側で操作ログなどを取得する必要があるかと思います。当初はAuth0のログデータを解析する目的だったのに、気づけばアプリケーションのログの解析になっていたなどが起こらないように気をつけてください。

Auth0のログデータでどこまで分析するのか はしっかり決めた上でログデータを活用しましょう。