0

我有一个 node.js 应用程序,我正在尝试使用 PnPjs 的 AdalFetchClient 从共享点获取一些数据。

sp.setup({
  sp: {
    baseUrl: "https://placeholder.sharepoint.com",
    fetchClientFactory: () => {
      return new AdalFetchClient("tenantId", "azure_clientId", "azure_clientSecret");
    },
  },
});

await sp.web.getAppCatalog().get();

我收到此错误:Error making HttpClient request in queryable [401] Unauthorized ::> {"error_description":"Invalid issuer or signature."}

我像这样设置我的天蓝色活动目录应用程序的权限: Azure App permissions

我向我尝试从中获取数据的租户授予了所有权限: 授予 Azure 应用程序的权限

我使用的示例在这里:https : //pnp.github.io/pnpjs/nodejs/adal-fetch-client/ 我还尝试使用带有图形的AdalFetchClient ..这是有效的。只有sharepoint api似乎有问题。

4

1 回答 1

0

我找到了解决方案。有一个 AdalCertificateFetchClient 需要以下参数:

  • 租户 ID
  • Azure 应用客户端 ID
  • x.509 证书的指纹
  • 您的 x.509 证书的私钥
  • 您要连接到的共享点的根 url

所以首先你必须创建一个 x.509 证书。我为此使用了本教程。(感谢那)

之后,您必须通过将证书安装到本地计算机并执行以下步骤来获取指纹

最后一步是获取证书的私钥。为此,您必须为 windows 安装 openssl 并按照以下步骤操作

现在您可以使用您的 AdalCertificateFetchClient

于 2020-09-25T11:22:14.617 回答