Exchange Online にアクセスしたログとして、メールボックス監査ログの [MailboxLogin] の監査項目にて、メールボックスへアクセスしたログを確認することが可能です。
しかしながら、outlookでは毎回起動時に認証がおこなわれないため、すべてのアクセスについてログが記録されないことをご注意ください。
なお、メールボックス監査ログは、既定で組織単位で有効化されておりますが、[MailboxLogin] の監査項目については、既定では有効化されていないため、あらかじめ有効化していただく必要があります。
※有効化する前のログは記録されない動作でございます。
また、メールボックス監査ログの ClientInfoString の値にて、クライアントの情報や接続プロトコルの確認が可能です。
以下に手順をご案内いたしますので、ご確認くださいますようお願い申し上げます。
なお、以下のサイトの手順にて、Exchange Online に接続してから実行してください。
メールボックス監査ログの設定状況を確認する
メールボックス単位で設定状況を確認する
[構文]
Get-Mailbox -Identity <対象メールボックスのアドレス> | Select AuditOwner,AuditLogAgeLimit | Export-Csv -NoTypeInformation -Encoding UTF8 "<ファイル名を含んだ保存先のパス>"
[実行例]
Get-Mailbox -Identity User001@contoco.com | Select AuditOwner,AuditLogAgeLimit | Export-Csv -NoTypeInformation -Encoding UTF8 "C: empAudiList.csv"
全てのメールボックスの設定状況を確認する
[構文]
Get-Mailbox -ResultSize unlimited -Filter {RecipientTypeDetails -ne "DiscoveryMailbox"} | Select DisplayName,AuditOwner,AuditLogAgeLimit | Export-Csv -NoTypeInformation -Encoding UTF8 "<ファイル名を含んだ保存先のパス>"
[実行例]
Get-Mailbox -ResultSize unlimited -Filter {RecipientTypeDetails -ne "DiscoveryMailbox"} | Select DisplayName,AuditEnabled,AuditDelegate,AuditOwner,AuditLogAgeLimit | Export-Csv -NoTypeInformation -Encoding UTF8 "C: empAuditEnabledList_AllList.csv"
※ 実行例は C ドライブの Temp フォルダーに情報が出力されます。適宜ファイル名の変更をお願い申し上げます。
<実行結果について>
[DisplayName] : 表示名
[AuditOwner] : メールボックス所有者がアクセスを行った操作において、記録される項目が表示されます。
[AuditLogAgeLimit] : メールボックス監査ログの、ログの保存期間が表示されます。
メールボックス監査ログの [MailboxLogin] を有効化する
1. メールボックス単位で有効化する場合
[構文]
Set-Mailbox -Identity <有効化するメールボックスのアドレス> -AuditOwner @{add="MailboxLogin"}
[実行例]
Set-Mailbox -Identity User001@contoso.com -AuditOwner @{add="MailboxLogin"}
2. 全てのメールボックスに対し、一括で有効化する場合
[実行例]
Get-Mailbox -ResultSize Unlimited | Set-Mailbox -AuditOwner @{add="MailboxLogin"}
メールボックス監査ログを CSV ファイルにエクスポートする
[構文]
Search-MailboxAuditLog -StartDate 開始日時 -EndDate 終了日時 -Identity <監査対象のメールボックス> -ShowDetails -ResultSize 250000 -Operations <監査項目> -LogonTypes <ログオンの種類> | Export-Csv -NoTypeInformation -Encoding UTF8 -NoTypeInformation -Path "<ファイル名を含んだ保存先のパス>"
[実行例]
Search-MailboxAuditLog -StartDate 02/01/2021 -EndDate 03/04/2021 -Identity user01@contoso.com -ShowDetails -ResultSize 250000 -Operations MailboxLogin -LogonTypes Owner | Export-Csv -NoTypeInformation -Encoding UTF8 -Path "C:TempMailboxAuditLog-User01.csv"
出力されたパラメーターの意味はそれぞれ以下の通りです。
PSComputerName : イベントが発生したコンピューターの名前
RunspaceId : イベントが発生したセッションを一意に識別する GUID
PSShowComputerName
Operation : 実施した操作の種類
※予定表へ関する操作が行われた際、"Operation" に [Update] が記録
※予定表アイテムの削除が行われた際、"Operation" に [SoftDelete] が記録
OperationResult : 操作の成否
LogonType : 操作を行ったユーザーが所有者 (Owner) か代理ユーザー (Delegate) か
ExternalAccess : 外部ユーザーからのアクセスログ
DestFolderId
DestFolderPathName : 削除済みアイテム
FolderId
FolderPathName : 該当アイテムが格納されているフォルダ名
FolderName : 対象フォルダー
ClientInfoString : 操作を実行したクライアントまたは Exchange コンポーネントを識別する詳細情報
ClientIPAddress : クライアントの IP アドレス
InternalLogonType : 操作を実行したユーザーのログオンの種類
MailboxOwnerUPN : メールボックス所有者のユーザー プリンシパル名 (UPN)
DestMailboxGuid : 宛先メールボックス所有者の GUID
LogonUserDisplayName : ログオンしたユーザー名
LogonUserSid : ログオンしたユーザーの SID
ItemSubject : アイテムの件名
ItemAttachments : 添付されたファイルのファイル名を確認できます
OriginatingServer : 実行されたサーバー
MailboxGuid : メールボックスの GUID
MailboxResolvedOwnerName : メールボックス ユーザーの解決された名前 (形式は、ドメインSamAccountName)
LastAccessed : オペレーションを実行した日時
なお、ClientInfoString で確認可能なクライアントや接続プロトコルについては、以下の通りです。
※ ご利用されているクライアントや環境によって異なる可能性があります。
◇ POP による接続の場合
Client=POP3/IMAP4;Protocol=POP3
◇ IMAP による接続の場合
Client=POP3/IMAP4;Protocol=IMAP
◇ Outlook on the web の場合
Client=/owa/; Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
また、EWS のログにつきましては、メールボックス監査ログにて、ClientInfoString の値にて、"Client=Microsoft.Exchange.WebServices" と記録されたログから判断できますが、過去の事例よりログインに相当する作業が行われておらず、[MailboxLogin] などログインに関するログでは記録されない可能性があります。
メールボックス監査ログの保存期間は既定で 90 日となっており、90 日経過したログは自動で削除される動作です。
保存期間は以下コマンドレットにて変更が可能でございます。
※ 保存期間は [ 00:00:00 ~ 24855.03:14:07 ] 内で指定が可能です。
1. メールボックス単位で設定する場合
[構文]
Set-Mailbox -Identity <対象メールボックス> -AuditLogAgeLimit <保存期間>
[実行例]
Set-Mailbox -Identity User01@contoso.com -AuditLogAgeLimit 365.00:00:00
※ メールボックス監査ログの保存期間を 365 日に変更する場合
2. 全てのユーザー メールボックスに対し、一括で設定する場合
[構文]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox | Set-Mailbox -AuditLogAgeLimit <保存期間>
[実行例]
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox | Set-Mailbox -AuditLogAgeLimit 365.00:00:00
なお、Outlook クライアントからの接続において先進認証を用いられている接続である場合、MailboxLogin は記録されない動作である情報を確認してます。
また、先進認証を利用されているメールボックスへのログインについては、セキュリティ/コンプライアンスセンターの監査ログに Azure AD へのサインインとして記録が行われるため、Office 365 監査ログにてログの取得が可能です。
しかしながら、outlookでは毎回起動時に認証がおこなわれないため、すべてのアクセスについてログが記録されないことをご注意ください。
補足情報
Office 365 Enterprise E5、または Microsoft 365 Enterprise E5、Microsoft 365 E5 コンプライアンス アドオン ライセンスが付与されたメールボックスであれば、事前の準備作業は不要でございますが、上記ライセンス以外を利用されているメールボックスの場合は、明示的にメールボックス監査ログの有効化 (Set-Mailbox -Identity <MailboxIdentity> -AuditEnabled $true) を行われないと、セキュリティ / コンプライアンスセンターの監査ログ、や Office 365 Management Activity API によるログの取得は行えません。
※ Get-Mailbox -Identity <MailboxIdentity> | Select AuditEnabled にて確認を行うと、設定値は True として表示されますが、内部的には False の状態のため、メールボックス監査ログとしてはログが記録されますが、セキュリティ/コンプライアンスセンターの監査ログ、Office 365 Management Activity API にて取得可能とするためには明示的な有効化が必要となります。
明示的なメールボックス監査ログの有効化コマンドレット
※ Exchange Onlineに接続の上実施して下さい。
※全ユーザーに対してメールボックス監査ログを有効化します。
[実行例]
$UserMailboxes = Get-mailbox -Filter {(RecipientTypeDetails -eq 'UserMailbox')}
$UserMailboxes | ForEach {Set-Mailbox $_.Identity -AuditEnabled $true}
留意事項
・ 監査ログ有効化前のログは出力することはできません。
・ コマンドレット実行時の日時は、協定世界時(UTC) で指定いただく必要があります。
・ 一度に出力されるログの上限数は 5,000 件です。
サインインのログを出力するコマンドレット
[構文]
Search-UnifiedAuditLog -ResultSize "5000"-StartDate "<開始日時>" -EndDate "<終了日時>" -Operations "<アクティビティ>" | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "<ファイル名を含んだ保存先のパス.csv>"
[実行例]※ サインイン成功の場合
Search-UnifiedAuditLog -ResultSize "5000" -StartDate "2021/1/1 15:00:00" -EndDate "2021/1/26 15:00:00" -Operations "UserLoggedIn" | Export-Csv -Encoding UTF8 -NoTypeInformation -Path "C:TempUnifiedAuditLogActivity.csv"
[解説]
・[ResultSize] パラメータにて [5000] を指定することで、1 つの CSV ファイルに出力ができる最大数 5,000 件分のログを出力できます。
・上記実行例では、[C] ドライブ直下の [Temp] フォルダにログを出力しております。
・ UserLoggedIn はサインインが成功した際に表示される項目です。
・ 日本時間は UTC + 9 時間のため、上記は、1 月 2 日 0 時 ~ 1 月 27 日 0 時を指定しています。
<検索結果の確認方法>
・ CreationDate : いつのアクティビティか
・ UserIds : ユーザープリンシパルネーム
・ Operations : 何のアクティビティか
・ AuditData : 詳細
なお、「AuditData」に記載されている内容から以下を確認することができます。
認証 について
AuditData 内の、[ExtendedProperties] より確認することができます。
先進認証で接続された場合、OAuth2 と出力されます。
UserAgent : CBAInPROD と出力された場合は、基本認証 (レガシー認証) を利用した場合に出力されます。
接続元アプリについて
AuditData 内 にてUserAgent項目、ApplicationId項目より接続元アプリを確認することが可能です。
Azure ポータルの [エンタープライズ アプリケーション] から アプリケーション ID を確認できる場合があります。
※監査ログに出力された ApplicationId が記載されていない場合もあります。
[Search-UnifiedAuditLog] のコマンドレットにて出力された AuditData 内の ApplicationId と Azure ポータルのすべてのアプリケーションの一覧の ApplicationId と一致するものを確認することで、どのアプリケーションからアクセスしたか確認することができるかもしれません。
以下に ApplicationId を確認する手順をご案内いたします。
確認手順
- Azure ポータル (https://portal.azure.com) に管理者アカウントでサインイン
- 画面左ペインの [Azure Active Directory] をクリック
- [管理] - [エンタープライズ アプリケーション] をクリック
- [アプリケーションの種類] から [すべてのアプリケーション] を選択し、[適用] をクリック
- 表示された [すべてのアプリケーション] の一覧から [アプリケーション ID] の項目が合致するものをご確認ください。
Outlook クライアントより接続を行った場合のログは以下の通りです。
Target項目内 ID: 00000002-0000-0ff1-ce00-000000000000
ApplicationId: d3590ed6-52b3-4102-aeff-aad2292ab01c