我制作了一个使用Microsoft Graph和范围profile
,openid
,email
和User.Read
的网络应用。这很好用。
我现在想要加入offline_access
,User.Read
,Mail.Send
,Calendars.ReadWrite
,Directory.ReadWrite.All
,Directory.AccessAsUser.All
,User.Read.All
, Files.ReadWrite.All
,Files.Read
,Files.ReadWrite
和Sites.Read.All
范围。
尝试登录时,我收到消息:
您无法访问此应用程序。
教程示例应用程序需要权限才能访问组织中只有管理员才能授予的资源。请先让管理员授予此应用程序的许可权,然后才能使用它。
我在https://apps.dev.microsoft.com/
注册了该应用,并设置了这些图表权限:
使用PHP,我使用以下
use Microsoft\Graph\Graph;
use Microsoft\Graph\Model;
const CLIENT_ID = 'xxx';
const CLIENT_SECRET = 'xxx';
const REDIRECT_URI = 'xxxx';
const AUTHORITY_URL = 'https://login.microsoftonline.com/common';
const AUTHORIZE_ENDPOINT = '/oauth2/v2.0/authorize';
const TOKEN_ENDPOINT = '/oauth2/v2.0/token';
const SCOPES = 'profile openid email offline_access User.Read Mail.Send Calendars.ReadWrite Directory.ReadWrite.All Directory.AccessAsUser.All User.Read.All Files.ReadWrite.All Files.Read Files.ReadWrite Sites.Read.All';
并创建authorisationUrl
$authorizationUrl = $provider->getAuthorizationUrl();
那么,我怎样才能让管理员授予访问权限?
答案 0 :(得分:2)
要获得管理员同意,您需要让租户拥有针对/adminconsent
进行身份验证的管理员。此URL的原型是(换行符仅为了可读性):
https://login.microsoftonline.com/common/adminconsent?
client_id=[APPLICATION ID]&redirect_uri=[REDIRECT URI]
我写了一篇关于此的博客文章,它将帮助您了解其工作原理:v2 Endpoint and Admin Consent。