是否可以查询Graph API并查找目录管理员是否同意该应用程序以及何时完成此操作?
如果是这样,我该怎么做呢?
答案 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。
请注意,您无法知道何时同意。