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.



この記事に掲載されているサンプルを使用するには、事前に、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       = ""
$tenantdomain   = "<domain>"            # For example,
$msgraphEndpoint = ""
$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"
        $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       
            $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