调用Azure RBAC Rest API以获取对象类型

时间:2018-08-01 06:35:29

标签: rest azure rbac

我正在使用此调用https://management.azure.com/subscriptions/ {subscriptionId} /providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01来获取订阅的角色分配。输出是给出主体ID和其他值

问题是如何区分principalId是用户principal还是serviceprincipal?

对于我来说,这是查询图形api以获得appid(如果是服务原则)或显示名称,upn(如果是用户原则)的必要条件。

Graph APi为此有2个不同的调用,因此在自动化时,我需要根据对象类型知道要调用哪个。

用户:https://graph.windows.net/microsoft.com/users/principalid?api-version=1.6

主要服务:https://graph.windows.net/microsoft.com/servicePrincipals/principalid?api-version=1.6

1 个答案:

答案 0 :(得分:0)

  

Graph APi为此有2个不同的调用,因此在自动化时,我需要根据对象类型知道要调用哪个。

根据我的理解,您可以使用对象-Get Objects By Object Ids Rest API通过PrincipledID获取对象,而无需调用2个不同的调用。您还可以从响应中获取对象类型。

POST https://graph.windows.net/{tenantID}/getObjectsByObjectIds?api-version=1.6

我用2个主体ID测试,一个是服务主体,另一个是用户。

测试结果

enter image description here