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.