我正在努力了解如何通过PHP使用Kusto(数据浏览器(,其中一部分是身份验证。
我创建了服务帐户;冒充;用于active directory上的Azure Data Explorer。
但当我试图为它获取令牌时(httpie而不是curl,但你明白了(:
http https://login.microsoftonline.com/$AZURE_TENANT_ID/oauth2/token
client_id=$AZURE_CLIENT_ID
grant_type=client_credentials
client_secret=$AZURE_CLIENT_SECRET
scope=https://myclustername.brazilsouth.kusto.windows.net/.default
我得到一个代币
"aud": "00000002-0000-0000-c000-000000000000"
而不是预期的
"aud": "https://myclustername.brazilsouth.kusto.windows.net"
这给了我正确的(带有正确的aud
(令牌:
az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET --tenant $AZURE_TENANT_ID --allow-no-subscriptions
az account get-access-token --resource myclustername.brazilsouth.kusto.windows.net --query accessToken --output tsv
我可以使用该令牌正确地发出请求并获得结果。
有人知道我在这里错过了什么吗?我需要进行某种令牌交换才能通过curl访问Azure Data Explorer服务吗?
文档中有一个使用curl
的示例:https://learn.microsoft.com/en-us/azure/data-explorer/kusto/api/rest/request#examples