首页 > 解决方案 > 如何在没有任何用户的情况下从 Azure AD 应用程序中使用 SPFX 中的 client_id 和 client_secret 或使用 JavaScript 的 Sharepoint Page 读取访问令牌?

问题描述

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

我想编写代码以从共享点页面/自定义操作在 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。强文本

标签: javascriptazure-active-directorymicrosoft-graph-apimicrosoft-teamsspfx

解决方案


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

为您提供两种解决方法。

1.您可以使用 msal.js 库,但这需要用户交互。这是指南

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


推荐阅读