Azure Active Directory サインイン アクティビティ レポート API のサンプルAzure Active Directory sign-in activity report API samples

この記事は Azure Active Directory のレポート API に関する記事のコレクションの一部です。This article is part of a collection of articles about the Azure Active Directory reporting API.
Azure AD レポートは、コードまたは関連ツールを使用してサインイン アクティビティ データにアクセスできるようにする API を提供します。Azure AD reporting provides you with an API that enables you to access sign-in activity data using code or related tools.
この記事では、サインイン アクティビティ APIのサンプル コードを提供します。The scope of this Article is to provide you with sample code for the sign-in activity API.

参照:See:

前提条件Prerequisites

この記事に掲載されているサンプルを使用するには、事前に、Azure AD レポート API にアクセスするための前提条件を完了する必要があります。Before you can use the samples in this article, you need to complete the prerequisites to access the Azure AD reporting API.

PowerShell スクリプトPowerShell script


# This script will require the Web Application and permissions setup in Azure Active Directory
$clientID       = "<appid>"             # ApplicationId
$clientSecret   = "<key>"         # Should be a ~44 character string insert your info here
$loginURL       = "https://login.windows.net/"
$tenantdomain   = "<domain>"            # For example, contoso.onmicrosoft.com
$msgraphEndpoint = "https://graph.microsoft.com"
$countOfSignInDocsToBeSavedInAFile = 2000

# Get an Oauth 2 access token based on client id, secret and tenant domain
$body       = @{grant_type="client_credentials";resource=$msgraphEndpoint;client_id=$clientID;client_secret=$clientSecret}
$oauth      = Invoke-RestMethod -Method Post -Uri $loginURL/$tenantdomain/oauth2/token?api-version=1.0 -Body $body

if ($oauth.access_token -ne $null) {
    $headerParams = @{'Authorization'="$($oauth.token_type) $($oauth.access_token)"}

    $url = "$msgraphEndpoint/beta/auditLogs/signIns"
    Write-Output "Fetching data using Uri: $url"
    $i=0
    $docCount=0
    Do{
        $myReport = (Invoke-WebRequest -UseBasicParsing -Headers $headerParams -Uri $url)
        $jsonReport = ($myReport.Content | ConvertFrom-Json).value
        $fetchedRecordCount = $jsonReport.Count
        $docCount = $docCount + $fetchedRecordCount
        $totalFetchedRecordCount = $totalFetchedRecordCount + $fetchedRecordCount
        Write-Output "Fetched $fetchedRecordCount records and saved into SignIns$i.json"
        if($docCount -le $countOfSignInDocsToBeSavedInAFile)
        {
            $myReport.Content | Out-File -FilePath SignIns$i.json -append  -Force       
        }
        else
        {           
            $docCount=0
            $i = $i+1
        }

        #Get url from next link
        $url = ($myReport.Content | ConvertFrom-Json).'@odata.nextLink'         
    }while($url -ne $null)
    Write-Output "Total Fetched record count is : $totalFetchedRecordCount"

} else {
    Write-Host "ERROR: No Access Token"
}

スクリプトの実行Executing the script

スクリプトの編集が完了したら、実行して、サインイン ログ レポートから予期したデータが返されることを確認します。Once you finish editing the script, run it and verify that the expected data from the sign-in logs report is returned.

スクリプトからは、サインイン レポートの出力が JSON 形式で返されます。The script returns output from the sign-in report in JSON format. また、同じ出力内容を使って SignIns.json ファイルも作成されます。It also creates an SignIns.json file with the same output. 他のレポートからデータを返すようにスクリプトを変更してテストしたり、必要のない出力形式をコメント化したりできます。You can experiment by modifying the script to return data from other reports, and comment out the output formats that you do not need.

次の手順Next Steps