ins*_*itu 2 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
Run Code Online (Sandbox Code Playgroud)
并获取我的网络应用程序的实时日志流。
恐怕你不能,你可以使用访问令牌调用受 Azure AD 保护的 API,但 Kudu API 不受 Azure AD 保护,如你所知,它使用基本身份验证。
在您的情况下,如果您不想在命令中公开 Web 应用程序的发布配置文件(用户名和密码),我的解决方法是使用 Azure CLI 直接获取它们并将它们传递给命令curl。因此,即使有人获得了该脚本,未经您的网络应用程序许可,他也无法访问日志流。
username=$(az webapp deployment list-publishing-credentials --name joywebapp --resource-group <grou-name> --query publishingUserName -o tsv)
password=$(az webapp deployment list-publishing-credentials --name joywebapp --resource-group <grou-name> --query publishingPassword -o tsv)
curl -u "$username:$password" https://joywebapp.scm.azurewebsites.net/api/logstream
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3008 次 |
| 最近记录: |