通过调用范围为https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token
的{{1}},我得到了一个承载令牌
这是Azure AD中已注册应用程序的令牌。
当我使用该令牌进行API调用时,如https://{tenantName}.sharepoint.com/.default
我只发表https://infoinnobake.sharepoint.com/_api/search/query?querytext='contentclass:STS_Site contentclass:SP.Webb'&selectproperties='Title,Path'&rowlimit=500
可以解释为什么吗?是否可以通过Azure AD上已注册的应用程序访问sharepoint在线API?
答案 0 :(得分:0)
在此遵循本指南: https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azuread
您需要创建证书并将证书上传到注册的应用程序。比起您可以使用各种编程语言使用API或SharepointClient
答案 1 :(得分:0)
在使用基于应用的、基于 ClientID
/ ClientSecret
的身份验证时,我们遇到了类似的问题(错误消息略有不同:“Token type is not allowed”)最近创建的租户。在我们的旧租户(创建于 2013 年)中,我们可以毫无问题地使用相同的身份验证方法。事实证明,新租户在 DisableCustomAppAuthentication
属性中有一个标准设置,禁用这种身份验证,但是可以使用以下命令覆盖它:
Set-SPOTenant -DisableCustomAppAuthentication $false
来源:
此外:
https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs
<块引用>Azure Access Control (ACS),Azure Active Directory (Azure AD),已于 2018 年 11 月 7 日退休。此退休不 影响 SharePoint 加载项模型,该模型使用 https://accounts.accesscontrol.windows.net 主机名(不是 受此退休影响)。有关更多信息,请参阅影响 SharePoint 外接程序的 Azure 访问控制停用。 对于新 租户,使用 ACS app-only 访问令牌的应用程序被禁用 默认值。 我们建议使用 Azure AD 应用程序专用模型,它是 现代,更安全。 但是你可以通过运行来改变行为 ‘set-spotenant -DisableCustomAppAuthentication $false’(需要 最新的 SharePoint 管理 PowerShell)。
更多详情:
https://www.koskila.net/literally-breaking-changes-to-app-authentication-on-sharepoint-%F0%9F%98%B5