Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now
I use GrapAPi with ClientCredentials, where a Token is obtain and used to gather details.
When published on the WEB this connections requires credentials, but it shouldnt as a Token is passed.
EVen if i set anonymous it fails. Any alternatives i could work out?
let
client_id = ClientID,
client_secret=Client_secret,
//Authentication
//URI's
redirect_uri = "https://portal.office.com",
token_uri = "https://login.windows.net/.onmicrosoft.com/oauth2/token",
authorize_uri = "https://login.windows.net/.onmicrosoft.com/oauth2/authorize",
resource="https://graph.microsoft.com/",
tokenResponse = Json.Document(Web.Contents(token_uri,
[
Content=
Text.ToBinary(Uri.BuildQueryString(
[
client_id = client_id
,client_secret=client_secret
,resource=resource
,grant_type = "client_credentials"
,redirect_uri = redirect_uri
]))
,Headers=
[Accept="application/json"]
, ManualStatusHandling={400}
])),
access_token = tokenResponse[access_token],
token = tokenResponse[access_token],
getdatasets_uri ="https://graph.microsoft.com/stagingBeta/reports/getTenantSecureScores(period=1)/content",
GetGroups = Json.Document(Web.Contents(getdatasets_uri,[Headers=[Authorization="Bearer " & token]])),
#"Converted to Table1" = Table.FromList(GetGroups, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table1", "Column1", {"tenantId", "createdDate", "licensedUserCount", "activeUserCount", "secureScore", "maxSecureScore", "accountScore", "dataScore", "deviceScore", "enabledServices", "controlScores", "averageSecureScore", "averageMaxSecureScore", "averageAccountScore", "averageDataScore", "averageDeviceScore", "averageScores"}, {"tenantId", "createdDate", "licensedUserCount", "activeUserCount", "secureScore", "maxSecureScore", "accountScore", "dataScore", "deviceScore", "enabledServices", "controlScores", "averageSecureScore", "averageMaxSecureScore", "averageAccountScore", "averageDataScore", "averageDeviceScore", "averageScores"}),
#"Expanded createdDate" = Table.ExpandRecordColumn(#"Expanded Column1", "createdDate", {"Year", "Month", "Day"}, {"createdDate.Year", "createdDate.Month", "createdDate.Day"}),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded createdDate",{{"secureScore", Int64.Type}, {"maxSecureScore", Int64.Type}})
in
#"Changed Type"
Hi @pdesmarais,
It seems to be that refresh for data source which authenticated with API call within the query is not supported currently.
Here is a similar idea shared on Power BI Ideas forum. You can vote it up and add your comments there to improve Power BI on this feature. ![]()
Regards
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
Check out the October 2025 Power BI update to learn about new features.