无法配置OAuthentication,调用Sharepoint 365授权接口提示无声明身份错误
问题背景
我们正尝试将内部应用接入SharePoint 365,目标是读取SharePoint 365列表和Excel文档中的数据,计划复用现有OAuth体系,让用户使用自身Windows凭据登录。为实现该需求,我们首先通过SharePoint应用注册页面完成了SharePoint应用注册。
随后我们需要获取授权码供客户端使用Windows账号登录,调用的请求URL为:https://mycompany.sharepoint.com/sites/MySite/_layouts/15/OAuthAuthorize.aspx?client_id=14f0e39c-1234-42ea-bed5-ee5c7c834655&scope=List.Read&response_type=code&redirect_uri=https%3A%2F%2Fmysite.mycompany.com%3A9090%2Foauth%2F2.0%2FredirectURL.jsp
错误详情
访问上述URL时返回如下错误:
Sorry, something went wrong There is no claims identity. Please make sure the web application is configured to use Claims Authentication. TECHNICAL DETAILS Troubleshoot issues with Microsoft SharePoint Foundation. Correlation ID: 367ee69f-5066-0000-e1ef-cee55f7b7000
目前已排查确认权限配置、URL构造均合规,但错误仍持续出现。
错误含义与触发原因
错误具体含义
该报错表示SharePoint OAuth授权端点无法识别当前请求携带的合法用户身份声明。SharePoint Online默认基于声明式身份认证体系运行,本次请求缺少符合要求的身份声明票据,导致端点无法确认发起请求的用户身份,直接拒绝处理授权申请。
常见失败原因
- 当前请求会话未完成身份校验:直接调用
/OAuthAuthorize.aspx端点的前提是当前会话已经持有SharePoint认可的身份Cookie,若在未登录企业账号的匿名会话、未加入域的设备上发起请求,Windows凭据无法自动注入为合法的声明票据,就会触发该错误。 - 应用注册参数不匹配:在
appregnew.aspx注册应用时填写的重定向URI、权限范围与授权请求携带的参数不一致,比如注册时填写的重定向地址不带端口、协议不一致,会导致身份校验环节直接丢弃声明信息。 - 站点级权限未配置:本次请求的
List.Read是站点级权限,若注册的应用未给对应站点MySite授予访问权限,或是当前使用的Windows账号没有该站点的列表访问权限,都会导致身份声明校验失败。 - 企业AD同步异常:企业本地Windows凭据同步到Azure AD的过程出现异常,或是当前账号未启用SharePoint Online的访问许可,也会导致请求无法携带合法的声明信息。
内容的提问来源于stack exchange,提问作者Luis Garcia
相关产品推荐
相关产品推荐

