如何使用Azure AD身份验证流式传输Azure Webapp中的Kudu日志?

时间:2020-06-08 09:06:45

标签: azure azure-web-app-service

我正在尝试使用kudu流终结点来流化Azure Web应用程序公开的日志。 curl https://my-webapp.scm.azurewebsites.net/api/logstream。当然,这不起作用,并返回401,因为我未通过身份验证。我在网上找到了有关如何使用BasicAuth(例如https://github.com/projectkudu/kudu/wiki/REST-API)而不使用Azure AD提供令牌进行身份验证的参考。如果我尝试使用az account get-access-token --resource=...进行身份验证,则不知道要传递什么资源:使用Web应用程序的资源URL不起作用。

我想做的只是像这样:

curl -H "Authorization: Bearer $(... get somehow token ...)" https://my-webapp.scm.azurewebsites.net/logs/streaming

并获取我的Web应用的实时日志流。

1 个答案:

答案 0 :(得分:2)

恐怕您不能,您只能使用访问令牌调用由Azure AD保护的API,但Kudu API不受Azure AD保护,它使用您所知道的基本身份验证。

对于您来说,如果您不想在命令中公开Web应用程序的发布配置文件(用户名和密码),我的解决方法是使用Azure CLI直接获取它们并将它们传递给{{ 1}}命令。因此,即使有人获得了脚本,未经您的Web应用程序的许可,他也将无法访问日志流。

curl

enter image description here

相关问题