Я пытаюсь получить доступ к ресурсу Azure Application Insights через Reda sh, используя функцию (предварительного просмотра) ADXProxy.
Я создал регистрацию приложения в Azure, и я ' у нас есть некоторый проверочный код python, который может успешно получить доступ к моему ресурсу Application Insights и выполнить запрос Kusto (traces | take 1
) с помощью токена приложения:
import azure.kusto
import azure.kusto.data.request
import msal
cluster = 'https://ade.applicationinsights.io/subscriptions/<MY_SUBSCRIPTION>/resourcegroups/<MY_RESOURCE_GROUP>/providers/microsoft.insights/components/<MY_APP_INSIGHTS_RESOURCE>'
app_id = '<MY_APP_ID>'
app_key = '<MY_SECRET>'
authority_id = '<MY_AAD_SUBSCRIPTION_ID>'
def run():
app = msal.ConfidentialClientApplication(
client_id=app_id,
client_credential=app_key,
authority='https://login.microsoftonline.com/<MY_AAD_SUBSCRIPTION_ID>')
token = app.acquire_token_for_client(['https://help.kusto.windows.net/.default'])
kcsb = azure.kusto.data.request.KustoConnectionStringBuilder.with_aad_application_token_authentication(
connection_string=cluster,
application_token=token['access_token']
)
client = azure.kusto.data.request.KustoClient(kcsb)
result = client.execute('<MY_APP_INSIGHTS_RESOURCE>', 'traces | take 1')
for res in result.primary_results:
print(res)
return 1
if __name__ == "__main__":
run()
Однако Reda sh не поддерживает аутентификацию токена приложения: он использует аутентификацию по ключу приложения, делая вызов типа:
kcsb = azure.kusto.data.request.KustoConnectionStringBuilder.with_aad_application_key_authentication(
connection_string = cluster,
aad_app_id = app_id,
app_key = app_key,
authority_id = '<MY_AAD_SUBSCRIPTION_ID>'
)
Я не могу успешно подключиться к своему ресурсу App Insights, используя этот тип потока. Если я подставлю этот KustoConnectionStringBuilder в мою программу выше, я получу исключение, сообщающее мне:
Участник ресурса с именем https://ade.applicationinsights.io не найден в арендаторе с именем , Это может произойти, если приложение не было установлено администратором клиента или не было одобрено каким-либо пользователем в клиенте. Возможно, вы отправили запрос аутентификации не тому арендатору.
Могу ли я что-то сделать с помощью кода или Azure Конфигурирование портала, чтобы подключить мой «арендатор» к субъекту ресурса ade.applicationinsights.io
и получить это соединение работает?