使用Gosip包认证SharePoint时遇“Token type is not allowed”错误求助
核心问题:用错了认证策略
你当前使用的strategy.AuthCnfg是针对**SharePoint本地服务器(On-Premises)**的认证配置,而你的场景应该是SharePoint Online,需要切换为对应Online的应用权限认证策略。
修复步骤
替换认证策略类型
将代码中的strategy.AuthCnfg替换为strategy.AddInOnly,这是SharePoint Online下Client ID/Secret应用权限认证的正确策略:auth := &strategy.AddInOnly{ SiteURL: os.Getenv("SPAUTH_SITEURL"), ClientID: os.Getenv("SPAUTH_CLIENTID"), ClientSecret: os.Getenv("SPAUTH_CLIENTSECRET"), Realm: os.Getenv("SPAUTH_REALM"), // 需补充租户ID }Realm即你的Office 365租户ID,可通过以下方式获取:- 访问站点的
/_api/contextinfo端点,从返回结果中提取Realm字段; - 登录Azure AD门户,查看租户详情中的租户ID。
- 访问站点的
验证权限授予是否完成
确认在appinv.aspx页面提交权限请求后,是否点击了信任它按钮完成权限授予,仅配置XML而未确认信任会导致权限未生效。检查环境变量正确性
- 确保
SPAUTH_SITEURL是完整的站点集URL(如https://contoso.sharepoint.com/sites/MySite),不要带末尾斜杠; - 核对Client ID和ClientSecret无多余空格、换行或拼写错误。
- 确保
内容的提问来源于stack exchange,提问作者mev
相关产品推荐
相关产品推荐

