是否可以查询图形 API 并查找目录管理员是否同意应用程序以及何时完成?
如果是这样,我将如何去做?
您必须查询 oauth2PermissionGrants。若要获取它们,必须知道目标目录中应用程序服务主体的对象 ID。如果您知道应用程序的客户端 ID,则可以获得该 ID。
例如,如果我从 Azure AD 图形 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 图形 API 上授予 User.Read 范围,这意味着管理员同意。如果是个人用户同意,则 consentType 将为主体,主体 ID 设置为给予同意的用户的 ID。
请注意,您无法知道何时给予同意。