Azure Active Directoryのサインインログを監視

 

Azure Active DirectoryのPremium P1を使える機会があったので、Azure Active Directoryのサインインログについて色々触ってみました。

    • 今回実施した内容
      • Azure PortalでAzure Active Directoryのサインインログを見る
      • Azure Active Directoryの診断設定でサインインログをLog Analyticsへ転送する
      • Azure Active DirectoryのサインインログをAzure Monitorで監視設定してみる

1.Azure PortalでAzure Active Directoryのサインインログを見る

まず最初にAzure Active Directoryのサインインログを確認してみます。

サインインアクティビティの確認については全エディションで可能だそうです。

https://docs.microsoft.com/ja-jp/azure/active-directory/reports-monitoring/concept-sign-ins#what-azure-ad-license-do-you-need-to-access-sign-in-activity

実際にAzure Portal上でAzure Active Directoryのサインインのメニューを選択してみます。

ログイン日時やユーザー名、アプリケーション、ログインに成功したのかどうか、アクセス元のIPアドレス等を確認出来ます。

2.Azure Active Directoryの診断設定でサインインログをLog Analyticsへ転送する

Azure Active DirectoryのサインインログをLog Analyticsへ転送してみます。

1)Azure Active Directoryのメニューで診断設定を選択します。下記画面が表示されますので、診断設定を追加するをクリックします。

2)診断設定の画面が表示されます。

サインインログ(SignInLogs)をLog Analyticsへ転送する為には、Azure Active Directory Premium P1以上のライセンスが必要とのメッセージが表示されます。

今回はP1を使っても良いとの事でしたので、診断設定の名前、Log Analyticsワークスペース名を設定し、LogのSignInLogsへチェックを入れて保存します。

これでAzure Active Directory サインインログのLog Analyticsワークスペースへの転送設定が完了です。

3.Azure Active DirectoryのサインインログをAzure Monitorで監視設定してみる

Azure Active Directory サインインログをLog Analyticsへ転送できたかを確認してみます。

Azure Active Directoryの診断設定で指定した、Log Analyticsのワークスペースのログで以下のクエリを実行します。

SigninLogs
| where TimeGenerated > ago(24h)

過去24時間のサインインログが表示されます。

ユーザー単位に24時間のログイン回数を調べてみる場合は、こんな感じになりそうです。

SigninLogs
| where TimeGenerated > ago(24h)

サインインログのスキーマについてマイクロソフト様のサイトで確認してみます。

https://docs.microsoft.com/ja-jp/azure/active-directory/reports-monitoring/reference-azure-monitor-sign-ins-log-schema

ログイン成功、失敗については、ResultTypeで確認出来るようです。

実際に出力されたログ等を確認してみると、成功した場合は0になるようです。

ユーザー単位に24時間ログイン失敗回数を調べてみる場合は、こんな感じになります。

SigninLogs
| where TimeGenerated > ago(24h)
| where ResultType != “0”
| summarize count() by Identity

実行してみると、ユーザー単位に失敗回数が表示されました。

今回は以下の内容での監視設定を試してみました。

    • 監視内容
      • 監視条件;ユーザー別に2回以上ログイン失敗したログが検出された場合にアラート
      • 監視間隔:15分間隔

実際にAzure Monitorの設定を行います。

1)LogAnalytics ワークスペースのメニューで警告を選択します。下記画面が表示されますので、新しいアラートルールをクリックします。

2)アラートルールの作成画面が表示されます。条件の選択をクリックします。

3)シグナルロジックの構成画面が表示されますので、Custom Log Searchを選択します。

4)シグナルロジックの構成の設定画面が表示されます。

シグナルロジックを以下の内容で構成します。

      • シグナルロジック構成内容
        •  検索クエリ;
          SigninLogs
          | where TimeGenerated > ago(24h)
          | where ResultType != “0”
          | summarize count() by Identity
          | where count_ >1
        • アラートロジック
          • 基準:結果の数
          • 演算子:次の値以上
          • しきい値;1
          • 下記クエリの内容
        • 評価基準
          • 期間:15分
          • 頻度:15分

5)アクションルールの設定を行います。利用するアラートルールを選択します。

6)アラートルールの詳細を設定します。アラートルール名等の設定を行います。

これでAzure Monitorの設定は完了です。

実際の環境に合わせて、クエリ内容等を変更する必要があるかとは思いますが、Azure Active Directoryのサインインログを使った監視が出来る事が確認出来ました。