我们有一个门户网站,一个 azure AD 用户将在其中登录,并且能够从 sharepoint 的列表中查看数据。
尝试使用PNPJS和Angular MSAL来实现这一点
在开发阶段,使用sp-rest-proxy成功执行了所有列表操作,
但是当在 azure web 应用程序中构建并上传相同的 angular 项目时,它给出了一个错误"{"error":{"code":"-2147024891, System.UnauthorizedAccessException","message":{"lang":"en-US","value":"Access denied. You do not have permission to perform this action or access this resource."}}}
“
响应标头也有错误,因为X-MSDAVEXT_Error: 917656; Access+denied.+Before+opening+files+in+this+location%2c+you+must+first+browse+to+the+web+site+and+select+the+option+to+login+automatically.
现在使用 SP 设置变量
const SPHeaders: any = {
"Accept": "application/json;odata=verbose",
"content-type": "application/json;odata=verbose"
};
sp.setup({
sp: {
baseUrl: "SharePoint siteUrl",
headers: SPHeaders
}
});
注意:用户成功登录,我可以在图形 api 的帮助下活动目录用户信息。
我什至尝试传递我在 SP 设置中进行身份验证后获得的令牌,如下所示,但这会给出错误,因为 原因 =“令牌包含无效签名。”;category =“invalid_client”
sp.setup({
sp: {
baseUrl: environment.web,
headers: {
"Accept": "application/json;odata=verbose",
"Authorization": `Bearer ${token}`
}
}
});