我们正在开发一个 Office 加载项,它使用 Azure AD 的组织帐户进行身份验证。加载项需要管理许可。所以如果管理员登录了,应该引导他表达他的管理员同意。
我们正在使用 OAuth 进行身份验证:
https://login.microsoftonline.com/common/oauth2/authorize?response_type=id_token&client_id=<clientId>&redirect_uri=<redirectUri>
我们通过将 &prompt=admin_consent
附加到该 URL 来请求管理员同意
问题 1. 我们如何测试该管理员同意是否已成功给予,因此我们只需要让管理员给予同意,如果他之前没有给予同意?
问题 2。我们如何检查插件的更新版本现在是否需要更多权限并通知用户和管理员有关新要求?
最佳答案
是的,你可以做到这一点。你会想调用this MS Graph endpoint ,并检查 the oAuth2PermissionGrant object consentType
字段设置为 AllPrincipals
。
使用 Microsoft Graph ,您可以确定是否已授予管理员同意。授予管理员同意后,应用程序上会写入 OAuth2.0 权限授予。
在每个权限授予中,都有一个字段指示授予的权限级别。对于 Admin Consent,您需要查找 AllPrincipals
。
应用角色:Directory.Read.All
& Directory.ReadWrite.All
委托(delegate)权限:Diretory.Read.All
、Directory.ReadWrite.All
或 Directory.AccessAsUser.All
按特权从最低到最高的顺序排列。
这会返回一个 oAuth2PermissionGrant object包含您要查找的详细信息。
consentType
字段的响应。您可能需要枚举所有赠款以查找值 AllPrincipals
。https://stackoverflow.com/questions/46360206/