订阅Microsoft Office 365管理活动API:授权被拒绝

2024-05-12 14:09:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试订阅Office 365管理API但失败。在

发布到https://manage.office.com/api/v1.0/{tennant id}/activity/feed/sub 脚本/开始?内容类型=审计.SharePoint 返回以下错误:

<Response [401]> {"Message":"Authorization has been denied for this request."}

当使用本地python环境时。 我已经有访问令牌,我使用它打印office 365根网站并连接到Azure Active Directory。 我怀疑错误是我创建Microsoft azure web app的方式造成的,因此我创建了一个新的azure web app,其结果与我创建的“Native Client app”的结果相同。 当我使用“web app python控制台”时,例如“pythonanywhere”,出现异常,错误如下: “无法连接到代理。套接字错误:隧道连接失败:403禁止。“

我遵循了Microsoft手册:https://msdn.microsoft.com/en-us/library/office/mt227394.aspx#StartSubscription

我的代码示例:

^{pr2}$

Tags: httpscomapiwebidappmanage错误
2条回答

根据您的错误消息:

{"Message":"Authorization has been denied for this request."}

你的Azure AD应用程序似乎没有足够的权限执行此操作。您可以尝试运行以下powershell脚本来升级广告应用程序的权限:

#use the administrator account to sign in 
Connect-MsolService
$ClientIdWebApp = '{your_AD_application_client_id}'
$webApp = Get-MsolServicePrincipal –AppPrincipalId $ClientIdWebApp
#use Add-MsolRoleMember to add it to “Company Administrator” role).
Add-MsolRoleMember -RoleName "Company Administrator" -RoleMemberType ServicePrincipal -RoleMemberObjectId $webApp.ObjectId

同时,每个access_token都将在3600秒后过期,在我的测试中,只有当access_token过期时,我才会重现您的问题。在

我遇到了同样的问题,解决方案是在请求令牌时使用https://manage.office.com作为资源(而不是https://manage.office.com/-注意末尾的正斜杠,不应该包括它…)

相关问题 更多 >