我在 Azure 中创建了一个应用程序并将其设置为使用访问令牌和 ID 令牌。
我想连接到不同的租户并阅读 SharePoint 网站。以下是我已请求并获得管理员同意的权限:
目前,我已经设置了应用程序密钥,但我计划稍后转向证书。
我有这个代码来获取访问令牌,并且我确实得到了一个访问令牌:
const params = new URLSearchParams();
params.append("grant_type", "client_credentials");
params.append("scope", "https://graph.microsoft.com/.default");
params.append("client_id", process.env.client_id);
params.append("client_secret", process.env.client_secret);
var url = `https://login.microsoftonline.com/${tenant}/oauth2/v2.0/token`;
const response = await fetch(url,
{
method: 'POST',
body: params,
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}
);
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试阅读下面的根站点时
var url = "https://graph.microsoft.com/v1.0/sites?search=*";
const response = await fetch(url,
{
method: 'GET',
headers: { 'Authorization': `Bearer ${access_token}` }
}
);
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
error: {
code: 'AccessDenied',
message: 'Either scp or roles claim need to be present …Run Code Online (Sandbox Code Playgroud)