【发布时间】:2023-01-11 14:04:22
【问题描述】:
“委派权限”工作正常。
如何在使用 Microsoft.Graph API 的“应用程序权限”时获取其他用户的事件。
我确认了这个错误。
Microsoft.Graph.ServiceException: '代码:ErrorAccessDenied 消息:访问被拒绝。检查凭据并重试。ClientRequestId:下面是导致错误的代码和JWT值的权限。
- 代码
if ((await graphClient.Users.Request() .Filter("UserPrincipalName eq 'test@test.com'") .GetAsync()).FirstOrDefault() is User test) { // target user - test@test.com (example) var events2 = await graphClient.Users[test.Id].Events.Request() .Header("Prefer", "outlook.timezone=\"Korea Standard Time\"") .Select("subject,body,bodyPreview,organizer,attendees,start,end,location") .GetAsync(); // raise error // Microsoft.Graph.ServiceException: 'Code: ErrorAccessDenied // Message: Access is denied.Check credentials and try again. // ClientRequestId: }
- 角色(JWT - 解码)
"roles": [ "User.ReadBasic.All", "OnlineMeetings.Read.All", "Calendars.Read", "Mail.ReadBasic.All", "Group.Read.All", "EventListener.Read.All", "Directory.Read.All", "RoleManagement.Read.All", "User.Read.All", "Domain.Read.All", "Schedule.Read.All", "Calendars.ReadBasic.All", "Team.ReadBasic.All", "Mail.Read", "AppRoleAssignment.ReadWrite.All", "Mail.ReadBasic" ],我的工作经历。解决
- 许可已更改 添加/删除应用程序权限和委托权限。
- 身份验证类型更改(安全密钥 <-> 证书)
- 测试其他代码(使用github示例项目)
- JWT 检查和测试 Grape-explorer
- 限制对特定 Exchange Online 邮箱的应用程序权限(添加/删除)
- 配置应用程序访问在线会议(添加/删除)
我需要你的帮助
【问题讨论】: