Sharepoint Online OAuth 2.0 新 O365 租户的令牌类型无效

Sharepoint Online OAuth 2.0 invalid token type for new O365 tenant

我一直在使用 Sharepoint Online REST API 与我的 O365 AddIn 应用程序集成,该应用程序非常适合我的旧 O365 租户。 但是,当我尝试使用为我的新 O365 租户应用程序获得的 Bearer 令牌调用任何 API 时出现错误。

{"error":"invalid_request","error_description":"Token type is not allowed."}

是否为新租户更改了身份验证令牌 URL,还是其他内容。

我正在使用https://accounts.accesscontrol.windows.net/{{tenant_id}}/tokens/OAuth/2

Azure 访问控制 (ACS) 是 Azure Active Directory (Azure AD) 的一项服务,已于 2018 年 11 月 7 日停用。此次停用不会影响 SharePoint Add-in 模型,该模型使用 https://accounts.accesscontrol.windows.net 主机名(不受此次停用的影响)。

查看 Impact of Azure Access Control retirement for SharePoint add-ins

请注意,您可以connect SharePoint directly to Azure AD using token issuance policies

SharePoint 2013、2016 和 SharePoint Online 客户长期以来一直使用 ACS 在云、on-prem 和混合方案中进行身份验证。某些 SharePoint 功能和用例将受到 ACS 停用的影响,而其他功能和用例则不会。以下 table 总结了一些最流行的利用 ACS 的 SharePoint 功能的迁移指南:

  • 从 Azure AD 验证用户

    • 以前,Azure AD 不支持 SharePoint 进行身份验证所需的 SAML 1.1 令牌,ACS 用作使 SharePoint 与 Azure AD 令牌格式兼容的中介。现在,您可以使用令牌颁发策略将 SharePoint 直接连接到 Azure AD。
  • SharePoint on-prem 或 SharePoint Online 中的应用程序身份验证和 server-to-server 身份验证 – SharePoint add-in 通过 appregnew.aspx 等完成的注册

    • 不受 ACS 停用的影响;无需更改。
  • SharePoint add-ins(提供商托管和 SharePoint 托管)的低信任授权

    • 不受 ACS 停用的影响;无需更改。
  • SharePoint 云混合搜索

    • 不受 ACS 停用的影响;无需更改。

我们在最近创建的租户中使用仅应用程序、基于 ClientID / ClientSecret 的身份验证时遇到了同样的问题。在我们的旧租户(创建于 2013 年)中,我们可以毫无问题地使用相同的身份验证方法。事实证明,新租户在 DisableCustomAppAuthentication 属性 中有一个标准设置,禁用这种身份验证。但是可以使用此命令覆盖它:

Set-SPOTenant -DisableCustomAppAuthentication $false

来源:

https://sharepoint.stackexchange.com/questions/284402/sharepoint-online-authorization-issue-token-type-is-not-allowed

https://sharepoint.stackexchange.com/questions/286693/getting-invalid-request-token-type-is-not-allowed-error-while-accessing-lists

此外:

https://docs.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs

Azure Access Control (ACS), a service of Azure Active Directory (Azure AD), has been retired on November 7, 2018. This retirement does not impact the SharePoint Add-in model, which uses the https://accounts.accesscontrol.windows.net hostname (which is not impacted by this retirement). For more information, see Impact of Azure Access Control retirement for SharePoint Add-ins. For new tenants, apps using an ACS app-only access token is disabled by default. We recommend using the Azure AD app-only model which is modern and more secure. But you can change the behavior by running ‘set-spotenant -DisableCustomAppAuthentication $false' (needs the latest SharePoint admin PowerShell).

更多详情:

https://www.koskila.net/literally-breaking-changes-to-app-authentication-on-sharepoint-%F0%9F%98%B5/