天蓝色监视器的管理员同意流程(见解)api

时间:2016-11-18 10:10:52

标签: azure azureportal azure-monitoring

我们正在MS Azure中构建一个多租户SaaS应用程序,允许客户将自己的Azure租户带到我们这里,以便我们可以审核其数据。为了获得此权限,我们采用标准同意流程,客户租户的全局管理员应授予我们应用的权限。

如果我们使用租户的数据(例如sharepoint文件或用户/组),这种方法就可以了,但是最近我们需要读取客户的 Azure订阅中的审核日志(例如,创建/删除VM的事件,使用存储帐户进行操作等。为了实现这一点,我们使用Azure Monitor API(以前的Azure Insights API):https://msdn.microsoft.com/en-us/library/azure/dn931943.aspx

问题是Microsoft提供的同意框架似乎没有一种机制来分配角色来访问Azure Subscription的数据。当尝试使用我们的主体读取数据时,我们收到以下错误:

  

对象ID为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”的客户端“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”无权对范围执行“microsoft.insights / eventtypes / values / read”操作'/订阅/ XXXXXXXXXXXX-XXXXXXXX-XXXXXXXXXXXX'。

截至目前,除了在Azure门户的客户订阅设置中手动将“读者”角色添加到我们的应用程序(https://docs.microsoft.com/en-us/azure/resource-group-create-service-principal-portal,“将应用程序分配给角色”)之外,我们还没有找到解决错误的方法部分),但我们真的想避免手动程序。

如何以更优雅的方式解决这个问题?