了解是否以及何时给予管理员同意

时间:2017-02-03 19:18:06

标签: azure azure-active-directory azure-ad-graph-api

是否可以查询Graph API并查找目录管理员是否同意该应用程序以及何时完成此操作?

如果是这样,我该怎么做呢?

1 个答案:

答案 0 :(得分:3)

您必须查询 oauth2PermissionGrants 。要获取它们,您必须知道目标目录中应用程序服务主体的对象ID。如果你知道应用程序的客户端ID,那么你可以获得。

例如,如果我从Azure AD Graph API查询https://graph.windows.net/<tenant id>/servicePrincipals/6e56b47c-4c6e-40f5-aa95-16a0b1cb44fc/oauth2PermissionGrants

{
  "odata.metadata": "https://graph.windows.net/<tenant id>/$metadata#oauth2PermissionGrants",
  "value": [
    {
      "clientId": "6e56b47c-4c6e-40f5-aa95-16a0b1cb44fc",
      "consentType": "AllPrincipals",
      "expiryTime": "2017-12-19T09:25:32.3581755",
      "objectId": "fLRWbm5M9UCqlRagsctE_M7PF6398j5LkfWqCoLpQBI",
      "principalId": null,
      "resourceId": "ad17cfce-f2fd-4b3e-91f5-aa0a82e94012",
      "scope": "User.Read",
      "startTime": "0001-01-01T00:00:00"
    }
  ]
}

您可以看到此特定服务主体已在Azure AD Graph API上为 AllPrincipals 授予User.Read范围,这意味着管理员同意。如果是个人用户同意,则consentType将为 Principal ,其中principalId设置为给予同意的用户的id。

请注意,您无法知道何时同意。