我有一个守护程序服务,该服务使用用户的用户名/密码(user1@domain.com)[使用Microsoft.Identity.Client.PublicClientApplication然后使用AcquireTokenByUsernamePasswordAsync获取访问令牌来获取access_token。
Azure应用的范围为“ Mail.Read”,并且已授予“委派权限”(无需管理员同意)
我可以成功获得user1@domain.com邮箱的订阅,从而收到邮件通知。
我正在使用Graph客户端进行订阅。
var subscription = new Subscription
{
Resource = "users/user1@domain/mailFolders('Inbox')/messages",
ChangeType = "created",
NotificationUrl = "NotificationUrl",
ClientState = Guid.NewGuid().ToString(),
ExpirationDateTime = DateTime.UtcNow + new TimeSpan(0, 0, 15, 0)
};
user2@domain.com已将其邮箱共享给user1@domain.com。在azure应用程序上,我添加了“ Mail.Read.Shared”的范围,并确保单击“授予权限”(再次不需要管理员同意)。
但是,即使在此之后,我也只收到有关user1@domain.com的通知,而不是关于user2@domain.com的通知
但是,即使我尝试通过将上述订阅中的“资源”属性更改为“ users / user2 @ domain / mailFolders('Inbox')/ messages”来获得订阅,我也会收到以下错误消息
代码:ExtensionError消息:操作:创建;例外:[状态代码:禁止;原因:禁止]
有趣的是,如果我使用通过上述指定方式收到的access_token发起对邮递员以下URL的获取请求,我可以阅读共享邮箱的邮件! (https://graph.microsoft.com/v1.0/users/user2@domain.com/mailFolders(“收件箱”)/消息)此外,当我在修改权限并授予Mail.Read.Shared的同意后在graph Explorer上尝试相同的操作时,我可以阅读邮件。
但是,当我尝试使用Postman获取订阅时,也会收到相同的错误消息。
需要以下帮助: