How to use Microsoft Graph API Secure Score on Power BI

Jamilly Braga 0 Pontos de reputação
2025-10-16T16:35:27+00:00

I'm trying to create a Secure Score dashboard in Power BI, but I'm running into issues when using the Graph API in Power BI.

Here are the steps I’ve followed so far:

Created an app registration in Azure

Created a secret key

Added the SecurityEvents.Read.All permission to the app (I also have the same permissions as a user)

Used the following code in a blank Power BI query to get the data:

let
    GetToken = () =>
    let
        tenant_id = "YOUR_TENANT_ID",
        client_id = "YOUR_CLIENT_ID",
        client_secret = "YOUR_CLIENT_SECRET",
        token_url = "https://login.microsoftonline.com/" & tenant_id & "/oauth2/v2.0/token",
        body = "client_id=" & client_id & 
               "&scope=https://graph.microsoft.com/.default" & 
               "&client_secret=" & client_secret & 
               "&grant_type=client_credentials",
        tokenResponse = Json.Document(Web.Contents(token_url,
            [
                Content = Text.ToBinary(body),
                Headers = [
                    #"Content-Type" = "application/x-www-form-urlencoded"
                ]
            ]
        )),
        access_token = tokenResponse[access_token]
    in
        access_token
in
    GetToken

Then I used this code in another blank query to retrieve the data:

let
    token = GetToken(),
    url = "https://graph.microsoft.com/v1.0/security/secureScores?$top=1",
    response = Json.Document(Web.Contents(url,
        [
            Headers = [
                #"Authorization" = "Bearer " & token,
                #"Content-Type" = "application/json"
            ]
        ]
    )),
    data = response[value]
in
    data

However, the following message appears: Formula.Firewall: Query 'SecureScores' (step 'response') is accessing data sources with privacy levels that cannot be used together. Please rebuild this data combination.

Microsoft 365 e Office | Outro
0 comentários Sem comentários

1 resposta

Classificar por: Mais útil
  1. Richard Trinidad 6,330 Pontos de reputação Assistente Independente
    2025-10-16T17:42:02.36+00:00

    Olá Jamilly, Obrigado por postar aqui na comunidade da Microsoft. Você está no caminho certo, mas há algumas coisas a serem esclarecidas e corrigidas para obter dados de Classificação de Segurança da API do Microsoft Graph para o Power BI, aqui está o que você pode fazer.

     

    Aqui está uma versão simplificada e corrigida de suas consultas do Power BI:

    Primeiro, Consulta GetToken (fluxo de credenciais do cliente OAuth2),

     

    deixar

        tenant_id = "YOUR_TENANT_ID",

        client_id = "YOUR_CLIENT_ID",

        client_secret = "YOUR_CLIENT_SECRET",

        token_url = "https://login.microsoftonline.com/" & tenant_id & "/oauth2/v2.0/token",

        corpo = "client_id=" & client_id &

               "&scope=https://graph.microsoft.com/.default" &

               "&client_secret=" & client_secret &

               "&grant_type=client_credentials",

        tokenResponse = Json.Document(Web.Contents(token_url,

            [

                Conteúdo = Text.ToBinary(corpo),

                Cabeçalhos = [#"Content-Type" = "application/x-www-form-urlencoded"]

            ]

        )),

        access_token = tokenResponse[access_token]

    em

        access_token

     

    Em seguida, para obter dados de pontuação de segurança,

     

    deixar

        token = GetToken,

        url = "https://graph.microsoft.com/v1.0/security/secureScores?$top=1",

        resposta = Json.Document(Web.Contents(url,

            [

                Cabeçalhos = [

                    #"Autorização" = "Portador" & token,

                    #"Content-Type" = "application/json"

                ]

            ]

        )),

        dados = resposta[valor]

    em

        dados

     

    Além disso, para problemas comuns a serem observados, incompatibilidade de permissão, você precisa de permissões de aplicativo Security.Read.All ou SecurityEvents.Read.All (não apenas delegadas) e, em seguida, consentimento do administrador, verifique se o administrador do Azure concedeu consentimento para as permissões do aplicativo, próximo ponto de extremidade correto, para Classificação de Segurança, use https://graph.microsoft.com/v1.0/security/secureScores

     

    Em seguida, tente executar as consultas novamente com o ponto de extremidade e as permissões corrigidos e, se você quiser visualizar tendências (por exemplo, Classificação de Segurança ao longo do tempo), poderá aumentar $top ou paginar os resultados.

     

    Espero que isso ajude você. Deixe-me saber como foi.

    Chard

    Esta resposta foi útil?

    0 comentários Sem comentários

Sua resposta

As respostas podem ser marcadas como ‘Aceitas’ pelo autor da pergunta e ‘Recomendadas’ pelos moderadores, o que ajuda os usuários a saber a resposta que resolveu o problema do autor.