当前位置: 首页 > 知识库问答 >
问题:

“不支持的仅应用令牌”SharePoint API错误,即使在添加证书后也是如此

裴星洲
2023-03-14

我正在尝试使用列表 SharePoint API,https://xx.sharepoint.com/_api/web/lists 当我尝试访问上述 API 时收到“不支持的仅应用程序令牌”错误。我已经参考了本回答中提到的文档。我也在注册的应用程序上添加了证书,但仍然收到相同的错误。我正在获取 SharePoint 令牌作为

URL“https://login.microsoftonline.com/xx.onmicrosoft.com/oauth2/v2.0/token"

身体

  1. “grant_type”——

共有2个答案

夏侯弘量
2023-03-14

我以前遇到过这个错误。事实上,appid应用程序秘密授权流在仅应用程序场景中不受支持。即使通过使用应用程序的客户端id和客户端机密,或者通过使用客户端id和证书,也会为您提供有效的访问令牌。但是,只有使用证书获得的访问令牌才允许与SharePoint Online一起使用。如果尝试使用使用客户端id和客户端机密获得的仅应用程序访问令牌,SharePoint Online将返回以下错误:

不受支持的仅应用令牌。

如果想在Daemon app中获得授权,可能需要像@allen wu建议的那样求助于“appid证书”。

下面是背后的授权过程:

    < li >第二种情况:使用证书的访问令牌请求

BR

上官彬
2023-03-14

这不是证书凭据的工作方式。应用程序可用于身份验证的这种凭证形式是用应用程序拥有的证书签名的JSON Web令牌(JWT)断言。请参见此处的详细信息。

因此您不能使用客户端机密来获取访问令牌。

您需要首先设置Azure AD应用程序,以便仅访问应用程序。请参阅“仅通过Azure AD App授予访问权限”中的示例。

using OfficeDevPnP.Core;
using System;

namespace AzureADCertAuth
{
    class Program
    {
        static void Main(string[] args)
        {
            string siteUrl = "https://contoso.sharepoint.com/sites/demo";
            using (var cc = new AuthenticationManager().GetAzureADAppOnlyAuthenticatedContext(siteUrl, "<application id>", "contoso.onmicrosoft.com", @"C:\BertOnlineAzureADAppOnly.pfx", "<password>"))
            {
                cc.Load(cc.Web, p => p.Title);
                cc.ExecuteQuery();
                Console.WriteLine(cc.Web.Title);
            };
        }
    }
}

这是GitHub中的示例项目。

 类似资料:
  • 我已经添加特色图像到我的帖子一段时间回来,但安装插件后(我想)设置特色图像元框从管理选项卡中的编辑或添加新帖子页面消失。我已经重新安装了wordpress,但我不能把那个特色的图像框拿回来。 我还在我的主题函数中添加了对它的支持。php:

  • 我试图张贴使用ajax在laravel 5.我得到CSRF令牌不匹配异常。我环顾四周,发现可能存在这样的问题,但在这种情况下,我确实包括了所有必要的代码。 请看一下我的代码。 看法 我已经在隐藏输入中提供了令牌,并将其包含在我的帖子中。 我有一个元在头如下。 下面是我的控制器。 这个只是测试用的,这里没什么。我的路线如下 请帮我解决这个问题 这是日志中的输出。 以下是我的浏览器控制台帖子标题和页面

  • 我遇到了致命的问题:当我试图将代码推送到回购时,验证失败。我还在我的github帐户上添加了公钥。当我这样做时: 我收到 有人能帮忙吗?谢谢

  • 我正在尝试使用授权代码流,而不是我当前使用的隐式授权。下面是这两个流的文档。我正在使用来自我的角度2应用程序的斑点API。前三个步骤进展顺利,我从回调调用中获取代码。但是当我向 https://accounts.spotify.com/api/token 发出帖子呼叫时,我得到CORS异常,因为呼叫返回浏览器禁止的网站。返回页面与单击此链接 https://accounts.spotify.com

  • 问题内容: 创建新类时遇到了此类错误。下面是我的代码: 谁能帮助我弄清楚实际发生了什么,并提出解决建议?非常感谢您的帮助 真诚的 问题答案: 该声明 应该在代码块中,例如方法,构造函数或实例初始化程序中,而不是在类块中

  • 为了支持HTTP,我已经将以下代码添加到我的网络应用程序(Spring启动2.5.6v),该应用程序具有HTTPS的SSL证书。 我从上面的代码中可以理解的是,我从外部站点复制粘贴(没有太多解释),每当它收到8080 port(HTTP://localhost:8080)的请求时,它都会将请求重定向到8443 port(HTTPS://localhost:8443)。我不太确定是否也将此代码用于生