如何在 SPFX 中使用 client_id 和 client_secret 或使用 Javascript 的 Sharepoint 页面在没有任何用户的情况下从 Azure AD 应用程序读取访问令牌?

How to read the access token without any user from Azure AD Application using client_id and client_secret in SPFX or Sharepoint Page using Javascript?

假设我创建了一个 Azure AD 应用程序并为其提供了必要的图形权限(应用程序权限)。

我想编写代码以通过共享点 page/custom 操作在 Microsoft Teams 中创建一个团队。

例如:

POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=535fb089-9ff3-47b6-9bfb-4f1264799865
&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
&client_secret=qWgdYAmab0YSkuL1qKv5bPX
&grant_type=client_credentials

我想点击上面的 api 从 AzureAD 应用程序中检索访问令牌,以便使用 javascript 或 spfx 在我的 Sharepoint 页面中使用 MS-Graphs api。强文本

您不能将 client credentials flow 用于基于浏览器的客户端。此外,将客户端机密保存在页面中也不安全。

两种解决方法。

1.You 可以使用 msal.js 库,但这需要用户交互。这里是 guide.

2.Create你自己的服务器作为中间件。从您的服务器请求访问令牌。