Accesso ai report sull'uso in Azure AD B2C tramite l'API per la creazione di reportAccessing usage reports in Azure AD B2C via the reporting API

Azure Active Directory B2C (Azure AD B2C) fornisce l'autenticazione basata sull'accesso utente e sull'autenticazione a più fattori di Azure.Azure Active Directory B2C (Azure AD B2C) provides authentication based on user sign-in and Azure Multi-Factor Authentication. L'autenticazione è disponibile per gli utenti finali della famiglia di applicazioni tra i provider di identità.Authentication is provided for end users of your application family across identity providers. Quando si conosce il numero di utenti registrati nel tenant, i provider usati per la registrazione e il numero di autenticazioni per tipo è possibile ottenere le informazioni seguenti:When you know the number of users registered in the tenant, the providers they used to register, and the number of authentications by type, you can answer questions like:

  • Numero di utenti per ogni tipo di provider di identità (ad esempio, account Microsoft o LinkedIn) registrati negli ultimi 10 giorni.How many users from each type of identity provider (for example, a Microsoft or LinkedIn account) have registered in the last 10 days?
  • Numero di autenticazioni che usano l'autenticazione a più fattori eseguite correttamente nell'ultimo mese.How many authentications using Multi-Factor Authentication have completed successfully in the last month?
  • Numero di autenticazioni basate su accesso eseguite correttamente nel mese corrente,How many sign-in-based authentications were completed this month? per ogni giornoPer day? e per ogni applicazione.Per application?
  • Previsione del costo mensile dell'attività del proprio tenant Azure AD B2C.How can I estimate the expected monthly cost of my Azure AD B2C tenant activity?

Questo articolo si concentra sui report collegati all'attività di fatturazione, che si basa sul numero di utenti, di autenticazioni fatturabili basate su accesso e di autenticazioni a più fattori.This article focuses on reports tied to billing activity, which is based on the number of users, billable sign-in-based authentications, and multi-factor authentications.

PrerequisitiPrerequisites

Prima di iniziare è necessario completare i passaggi nei prerequisiti per l'accesso alle API per la creazione di report di Azure AD.Before you get started, you need to complete the steps in Prerequisites to access the Azure AD reporting APIs. Creare un'applicazione, ottenere il relativo segreto e concedere i diritti di accesso ai report del tenant di Azure AD B2C.Create an application, obtain a secret for it, and grant it access rights to your Azure AD B2C tenant’s reports. Di seguito vengono riportati anche esempi di script Bash e script Python.Bash script and Python script examples are also provided here.

Script di PowerShellPowerShell script

Questo script illustra la creazione di quattro report sull'uso impiegando il parametro TimeStamp e il filtro ApplicationId.This script demonstrates the creation of four usage reports by using the TimeStamp parameter and the ApplicationId filter.

# This script will require the Web Application and permissions setup in Azure Active Directory

# Constants
$ClientID      = "your-client-application-id-here"  
$ClientSecret  = "your-client-application-secret-here"
$loginURL      = "https://login.microsoftonline.com"
$tenantdomain  = "your-b2c-tenant-domain.onmicrosoft.com"  
# Get an Oauth 2 access token based on client id, secret and tenant domain
$body          = @{grant_type="client_credentials";resource=$resource;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)"}

    Write-host Data from the tenantUserCount report
    Write-host ====================================================
     # Returns a JSON document for the report
    $myReport = (Invoke-WebRequest -Headers $headerParams -Uri "https://graph.windows.net/$tenantdomain/reports/tenantUserCount?api-version=beta")
    Write-host $myReport.Content

    Write-host Data from the tenantUserCount report with datetime filter
    Write-host ====================================================
    $myReport = (Invoke-WebRequest -Headers $headerParams -Uri "https://graph.windows.net/$tenantdomain/reports/tenantUserCount?%24filter=TimeStamp+gt+2016-10-15&api-version=beta")
    Write-host $myReport.Content

    Write-host Data from the b2cAuthenticationCountSummary report
    Write-host ====================================================
    $myReport = (Invoke-WebRequest -Headers $headerParams -Uri "https://graph.windows.net/$tenantdomain/reports/b2cAuthenticationCountSummary?api-version=beta")
    Write-host $myReport.Content

    Write-host Data from the b2cAuthenticationCount report with datetime filter
    Write-host ====================================================
    $myReport = (Invoke-WebRequest -Headers $headerParams -Uri "https://graph.windows.net/$tenantdomain/reports/b2cAuthenticationCount?%24filter=TimeStamp+gt+2016-09-20+and+TimeStamp+lt+2016-10-03&api-version=beta")
    Write-host $myReport.Content

    Write-host Data from the b2cAuthenticationCount report with ApplicationId filter
    Write-host ====================================================
    # Returns a JSON document for the " " report
        $myReport = (Invoke-WebRequest -Headers $headerParams -Uri "https://graph.windows.net/$tenantdomain/reports/b2cAuthenticationCount?%24filter=ApplicationId+eq+ada78934-a6da-4e69-b816-10de0d79db1d&api-version=beta")
    Write-host $myReport.Content

    Write-host Data from the b2cMfaRequestCountSummary
    Write-host ====================================================
    $myReport = (Invoke-WebRequest -Headers $headerParams -Uri "https://graph.windows.net/$tenantdomain/reports/b2cMfaRequestCountSummary?api-version=beta")
    Write-host $myReport.Content

    Write-host Data from the b2cMfaRequestCount report with datetime filter
    Write-host ====================================================
    $myReport = (Invoke-WebRequest -Headers $headerParams -Uri "https://graph.windows.net/$tenantdomain/reports/b2cMfaRequestCount?%24filter=TimeStamp+gt+2016-09-10+and+TimeStamp+lt+2016-10-04&api-version=beta")
    Write-host $myReport.Content

    Write-host Data from the b2cMfaRequestCount report with ApplicationId filter
    Write-host ====================================================
    $myReport = (Invoke-WebRequest -Headers $headerParams -Uri "https://graph.windows.net/$tenantdomain/reports/b2cMfaRequestCountSummary?%24filter=ApplicationId+eq+ada78934-a6da-4e69-b816-10de0d79db1d&api-version=beta")
     Write-host $myReport.Content

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

Definizioni dei report sull'usoUsage report definitions

  • tenantUserCount: il numero di utenti del tenant al giorno per tipo di provider di identità negli ultimi 30 giorni.tenantUserCount: The number of users in the tenant by type of identity provider, per day in the last 30 days. (Facoltativo: un filtro TimeStamp specifica il numero di utenti da una data specificata alla data attuale).(Optionally, a TimeStamp filter provides user counts from a specified date to the current date). Questo report offre le informazioni seguenti:The report provides:

    • TotalUserCount: il numero totale degli oggetti utente.TotalUserCount: The number of all user objects.
    • OtherUserCount: il numero di utenti di Azure Active Directory (non gli utenti di Azure AD B2C).OtherUserCount: The number of Azure Active Directory users (not Azure AD B2C users).
    • LocalUserCount: il numero di account utente Azure AD B2C creati con le credenziali locali di accesso al tenant Azure AD B2C.LocalUserCount: The number of Azure AD B2C user accounts created with credentials local to the Azure AD B2C tenant.
  • AlternateIdUserCount: il numero di utenti di Azure AD B2C registrati con provider di identità esterno (ad esempio, Facebook, un account Microsoft o un altro tenant di Azure Active Directory, detto anche OrgId).AlternateIdUserCount: The number of Azure AD B2C users registered with external identity providers (for example, Facebook, a Microsoft account, or another Azure Active Directory tenant, also referred to as an OrgId).

  • b2cAuthenticationCountSummary: il riepilogo del numero giornaliero di autenticazioni fatturabili eseguite negli ultimi 30 giorni, per data e per tipo di flusso di autenticazione.b2cAuthenticationCountSummary: Summary of the daily number of billable authentications over the last 30 days, by day and type of authentication flow.

  • b2cAuthenticationCount: il numero di autenticazioni eseguite entro un determinato periodo di tempo.b2cAuthenticationCount: The number of authentications within a time period. Il valore predefinito corrisponde agli ultimi 30 giorni.The default is the last 30 days. (Facoltativo: i parametri TimeStamp di inizio e fine definiscono un periodo di tempo specifico). L'output include StartTimeStamp (prima data dell'attività per questo tenant) e EndTimeStamp (ultimo aggiornamento).(Optional: The beginning and ending TimeStamp parameters define a specific time period.) The output includes StartTimeStamp (earliest date of activity for this tenant) and EndTimeStamp (latest update).

  • b2cMfaRequestCountSummary: il riepilogo del numero giornaliero di autenticazioni a più fattori (voce o SMS), per data e per tipo.b2cMfaRequestCountSummary: Summary of the daily number of multi-factor authentications, by day and type (SMS or voice).

LimitazioniLimitations

I dati relativi al numero di utenti vengono aggiornati con una frequenza compresa tra 24 e 48 ore.User count data is refreshed every 24 to 48 hours. Le autenticazioni vengono aggiornate diverse volte al giorno.Authentications are updated several times a day. Quando si usa il filtro ApplicationId, se si ottiene un report vuoto la causa può essere una delle seguenti:When using the ApplicationId filter, an empty report response can be due to one of following conditions:

  • L'ID dell'applicazione non esiste nel tenant.The application ID does not exist in the tenant. Verificare che sia corretto.Make sure it is correct.
  • L'ID dell'applicazione esiste, ma non sono stati trovati dati nel periodo di reporting selezionato.The application ID exists, but no data was found in the reporting period. Controllare i valori dei parametri Data/Ora.Review your date/time parameters.

Passaggi successiviNext steps

Stime della fattura mensile per Azure ADMonthly bill estimates for Azure AD

È possibile fare riferimento ai prezzi più aggiornati di Azure AD B2C per stimare il proprio consumo di Azure giornaliero, settimanale e mensile.When combined with the most current Azure AD B2C pricing available, you can estimate daily, weekly, and monthly Azure consumption. Questa stima è particolarmente utile quando si pianificano modifiche nel comportamento del tenant che potrebbero influire sul costo complessivo.An estimate is especially useful when you plan for changes in tenant behavior that might impact overall cost. È possibile rivedere i costi attuali nella sottoscrizione Azure collegata.You can review actual costs in your linked Azure subscription.

Opzioni per altri formati di outputOptions for other output formats

Il codice seguente illustra esempi di invio di output a JSON, un elenco di valori nome, e XML:The following code shows examples of sending output to JSON, a name value list, and XML:

# to output to JSON use following line in the PowerShell sample
$myReport.Content | Out-File -FilePath b2cUserJourneySummaryEvents.json -Force

# to output the content to a name value list
($myReport.Content | ConvertFrom-Json).value | Out-File -FilePath name-your-file.txt -Force

# to output the content in XML use the following line
(($myReport.Content | ConvertFrom-Json).value | ConvertTo-Xml).InnerXml | Out-File -FilePath name-your-file.xml -Force