访问SharePoint _api/Web/SiteUsers时出现403 Forbidden错误



我正在开发一款应用程序,该应用程序于2021年1月20日在Azure AD中注册(通过"应用程序注册"页面(,使用SharePoint REST API(_API/Web/SiteUsers等(检索用户信息(从SharePoint在线(。使用我当时得到的租户id、应用程序id和客户端机密,该应用程序过去和现在都运行良好。几天前(2021年4月9日(,我在Azure中注册了第二个应用程序,向一位同事展示如何设置。使用该新应用程序的应用程序id和客户端机密(同一租户id(,当我向_api/Web/SiteUsers提交调用时,该应用程序会失败,并出现错误403(使用这两个应用程序id对MS Graph api的调用都可以很好地工作-只有SharePoint api调用会失败(。两个注册的应用程序都设置了相同的权限——当我并排比较它们时,我看不出有什么区别。它们都具有MS Graphneneneba API的应用程序权限:(Directory.Read.All、Files.Read.All、Sites.Read.All,Group.Read.Al(和SharePoint:(Sites.Read.All,User.Read.All(,以及MS GraphAPI的委派权限:User.Read。所有应用程序权限都已授予管理员同意。两者都使用密钥。我在Azure中直观地比较了两个注册的应用程序,没有发现任何其他属性(除了应用程序id、客户端id、品牌名称、密钥(的差异。有人知道最近是否有什么变化会导致早期的应用程序id正常工作,而不是最近的应用程序吗?Azure和SharePoint之间是否存在某种同步延迟(问题在3天后仍然存在(?如有任何帮助/提示,我们将不胜感激。提前谢谢。

Mm

适用于应用程序ID的解码令牌:

{
"typ": "JWT",
"alg": "RS256",
"x5t": "nOo3ZDrODXEK1jKWhXslHR_KXEg",
"kid": "nOo3ZDrODXEK1jKWhXslHR_KXEg"
}.{
"aud": "00000003-0000-0ff1ce00-000000000000/iplatinum1.sharepoint.com@55379f90-a2a4-4f64-b18d-f3453e934a85",
"iss": "00000001-0000-0000-c000-000000000000@55379f90-a2a4-4f64-b18d-f3453e934a85",
"iat": 1618276524,
"nbf": 1618276524,
"exp": 1618363224,
"identityprovider": "00000001-0000-0000-c000-000000000000@55379f90-a2a4-4f64-b18d-f3453e934a85",
"nameid": "7c331853-01ae-422b-bfe4-7df2d3fdbacf@55379f90-a2a4-4f64-b18d-f3453e934a85",
"oid": "fa4507cb-dfb1-4ed4-9d06-5fa9ffcb814e",
"sub": "fa4507cb-dfb1-4ed4-9d06-5fa9ffcb814e",
"trustedfordelegation": "false"
}.[Signature]

对于没有的:

{
"typ": "JWT",
"alg": "RS256",
"x5t": "nOo3ZDrODXEK1jKWhXslHR_KXEg",
"kid": "nOo3ZDrODXEK1jKWhXslHR_KXEg"
}.{
"aud": "00000003-0000-0ff1-ce00-000000000000/iplatinum1.sharepoint.com@55379f90-a2a4-4f64-b18d-f3453e934a85",
"iss": "00000001-0000-0000-c000-000000000000@55379f90-a2a4-4f64-b18d-f3453e934a85",
"iat": 1618276454,
"nbf": 1618276454,
"exp": 1618363154,
"identityprovider": "00000001-0000-0000-c000-000000000000@55379f90-a2a4-4f64-b18d-f3453e934a85",
"nameid": "7307b725-738e-4b8c-b898-89486cff95de@55379f90-a2a4-4f64-b18d-f3453e934a85",
"oid": "08650d87-1a47-436f-a8e1-ee44caa361ee",
"sub": "08650d87-1a47-436f-a8e1-ee44caa361ee",
"trustedfordelegation": "false"
}.[Signature]

据我所知,Azure AD App客户端机密已被sharepoint在线阻止。您需要选择证书进行身份验证:https://learn.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azuread

另一种解决方法是在SharePoint网站"中注册应用程序;https://yoursite/_layouts/15/appregnew.aspx"。这样你就可以起诉客户的秘密。https://learn.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs

正如Michael Han所指出的,我必须在SharePoint中注册应用程序ID。一旦完成,访问权限就被授予。

相关内容

最新更新