Récupérer un GraphAPI via PowerBI et bouclé sur le nextLink

Table des matières

Pour authentifier une application avec le flux d’informations d’identification client OAuth 2.0 et obtenir un jeton d’accès pour Microsoft Graph dans Power BI, vous pouvez suivre ces étapes :

1. Enregistrer votre application

Enregistrez une application Azure Active Directory avec les autorisations d’application appropriées pour Microsoft Graph.

2. Créer une fonction Power Query pour obtenir le jeton

Dans Power BI Desktop, créez une fonction Power Query pour effectuer l’appel d’authentification et récupérer le jeton d’accès :


() =>
let
//Found in Portal Azure site under App Registration: PBIAdminAPI-Dev
tenant_id = "***********************", //Overview Tab: Directory/Tenant ID
client_id = "************************", //Overview Tab: Application/Client ID
client_secret = "********************", //Certificates & secrets Tab: PowerBI secret Value

//POST Request
url = "https://login.microsoftonline.com/"&tenant_id&"/oauth2/v2.0/token",
body = [
grant_type = "client_credentials",
scope = "https://graph.microsoft.com/.default",
client_id = client_id,
client_secret=client_secret
],

//Get token
GetJson =
Json.Document(
Web.Contents(
url, [
Headers=[
Accept="application/json",
#"Content-Type"="application/x-www-form-urlencoded"
],
Content= Text.ToBinary(Uri.BuildQueryString(body))
]
)
),
access_token = GetJson[access_token]
in
access_token

 

3. Appeler la fonction et Microsoft Graph

Appelez la fonction pour obtenir le jeton, puis utilisez-le pour appeler Microsoft Graph, par exemple :


let
AccessToken = getAccessToken(),
Response = Json.Document(Web.Contents("https://graph.microsoft.com/beta/groups/{tenant_id}/members", [Headers=[#"Authorization"="Bearer " & AccessToken]])),
Data = Response[value],
NextLink = Response[#"@odata.nextLink"],

GetNextPage = (link) =>
let
AccessToken2 = getAccessToken(),
Source = Json.Document(Web.Contents(link, [Headers=[#"Authorization"="Bearer " & AccessToken2]])),
Data = Source[value],
NextLink = Source[#"@odata.nextLink"]
in
Data,

AllData = Data & (if NextLink <> null then GetNextPage(NextLink) else {})
in
AllData

Quelques points importants :

  • Assurez-vous que votre application a les autorisations d’application appropriées pour Microsoft Graph.
  • Stockez les secrets de manière sécurisée, par exemple en utilisant le service lié Azure Key Vault dans Power BI.

En suivant ces étapes, vous pourrez vous authentifier auprès de Microsoft Graph à partir de Power BI et accéder aux données de manière sécurisée.

Partager cette article

Partager sur Facebook
Partager sur Twitter
Partager sur Linkdin

Bonjour, je suis un expert informatique indépendant et je vous aide à prendre les bonnes décisions !

Il est facile de se perdre dans la technologie. Je peux vous aider à prendre les bonnes décisions, afin que vous soyez sûr que la solution proposée est la bonne.

Parlons de vos projets dès maintenant