我们正在 MS Azure 中构建一个多租户 SaaS 应用程序,允许客户将他们自己的 Azure 租户带给我们,以便我们可以审计其数据。为了获得此权限,我们采用标准同意流程,客户租户的全局管理员应在该流程中向我们的应用授予权限。
如果我们使用租户的数据(例如共享点文件或用户/组),这种方法是可以的,但最近我们需要读取客户的Azure 订阅中的审核日志(例如创建/删除 VM 的事件、存储操作帐户等)。为了实现这一点,我们使用 Azure Monitor API(以前的 Azure Insights API):https ://msdn.microsoft.com/en-us/library/azure/dn931943.aspx 。
问题是微软提供的同意框架似乎没有分配角色来访问 Azure 订阅数据的机制。当尝试使用我们的主体读取数据时,我们收到以下错误:
对象 ID 为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”的客户端“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”无权在“/订阅”范围内执行“microsoft.insights/eventtypes/values/read”操作/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'。
截至目前,除了在 Azure 门户(https://docs.microsoft.com/en-us/azure /resource-group-create-service-principal-portal,“将应用程序分配给角色”部分),但我们真的很想避免手动程序。
任何想法如何以更优雅的方式解决这个问题?