[英]How to authenticate correctly in SharePoint Online from Azure Function with API Graph?
再见,
我正在处理 Azure Function 需要使用 API Graph 读取/写入 SharePoint 在线列表。 我在身份验证方面遇到了一些问题。
我已按照以下步骤操作:
下面的应用程序的授权:
在我的代码下面:
var scopes = new[] { "https://graph.microsoft.com/.default" };
var tenantId = "my-tenant-id";
var clientId = "my-client-id";
var clientSecret = "my-secret";
var clientSecretCredential = new ClientSecretCredential(tenantId, clientId, clientSecret);
var graphServiceClient = new GraphServiceClient(clientSecretCredential, scopes);
var test = await graphServiceClient
.Sites["my-site-id"]
.Lists["my-list-id"]
.Items.Request().GetAsync();
当我执行此代码时,出现此错误:消息:令牌中需要存在 scp 或角色声明。
我该如何解决这个错误?
万分感谢
我试图在我的环境中重现相同的内容并得到如下相同的错误:
为了解决这个错误,我创建了一个Azure AD 应用程序并授予 API 权限,如下所示:
请注意,您只能根据需要添加Sites.Selected
API 权限。
我使用以下参数生成了 scope 作为https://graph.microsoft.com/.default
的令牌:
https://login.microsoftonline.com/TenantID/oauth2/v2.0/token
client_id:ClientID
client_secret:ClientSecret
scope:https://graph.microsoft.com/.default
grant_type:client_credentials
使用上面生成的访问令牌,我可以像下面这样成功地对 SharePoint 进行身份验证:
https://graph.microsoft.com/v1.0/sites/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.