簡體   English   中英

從 React SPFx Webpart 獲取 AAD 角色

[英]Get AAD Roles from React SPFx Webpart

我有一個簡單的 React SPFX Webpart。 我們已將其部署到我們的 SP Online 站點。 它當前顯示當前用戶的 SP 組。

const queryUrl = `${this.context.pageContext.site.absoluteUrl}/_api/web/currentuser/groups`;
const siteGroupsData = await this.context.spHttpClient.get(
  queryUrl,
  SPHttpClient.configurations.v1
);
const siteGroups: any[] = (await siteGroupsData.json()).value;
const justNames = siteGroups.map((m) => m.Title);
const groups = justNames.join(",");

我還需要顯示 AAD 組\角色嗎?

我需要使用 Microsoft Graph 嗎? MSAL? 如何? 有太多陳舊且令人困惑的信息。

我試過使用以下

import { Providers, SharePointProvider } from "@microsoft/mgt";
Providers.globalProvider = new SharePointProvider(this.context);

以上在控制台中產生以下錯誤:InteractionRequiredAuthError:AADSTS65001:用戶或管理員未同意使用 ID 為“SharePoint Online Client Extensibility Web Application Principal”的應用程序。 為此用戶和資源發送交互式授權請求。 跟蹤 ID:相關 ID:時間戳:2022-11-15 15:07:21

這只是 Workbench 的問題嗎?

我在 web 上看到了針對完整 REACT SPA 的示例,但這是一個 Web 部件,並且用戶已經登錄。我覺得我不必請求令牌。 也許它只是一個需要的 SP 在線配置設置。

謝謝!

此錯誤AADSTS65001: The user or administrator has not consented to use the application with ID '' named 'SharePoint Online Client Extensibility Web Application Principal'. Send an interactive authorization request for this user and resource. AADSTS65001: The user or administrator has not consented to use the application with ID '' named 'SharePoint Online Client Extensibility Web Application Principal'. Send an interactive authorization request for this user and resource. 主要發生在管理員未同意訪問應用程序時

  • 檢查您是否公開了 API,添加了 Scope 和 API 圖形查詢所需的權限,以查詢用戶、組和批准並授予同意。SPFx 中的相同檢查。

在此處輸入圖像描述

在 SPFx 中,管理員可以在身份驗證過程中批准或拒絕請求。 在此處輸入圖像描述

在這種情況下,訪問被錯誤拒絕

在此處輸入圖像描述

請與管理員核實,或者是否啟用了用戶同意。

確保他們獲得同意。

在此處輸入圖像描述

並在企業應用程序> usersettings.or( 此處)中檢查該應用程序是否允許用戶同意

在此處輸入圖像描述

根據應用設置為不允許。

所有這些權限通常存儲在SharePoint Online Client Extensibility Azure AD application中,通過 web API 請求授予。所以主要是缺乏管理員或用戶的同意導致此問題。

管理員可能已使用Disable-SPOTenantServicePrincipal禁用了權限,或使用Deny-SPOTenantServicePrincipalPermissionRequest -RequestId <Guid>拒絕了該權限。請參閱全局和 SharePoint 管理員可以使用powershell 命令管理請求。

如果管理員同意所需的權限,查詢將成功

請注意,來賓用戶無權查詢超過 1 個用戶的多個用戶,例如: /groups/{id}/members

Microsoft Graph 權限參考 - Microsoft Graph | 微軟學習

對於 spfx web 部分,在使用 Microsoft graph api 時存在一個已知問題,我們無法獲得角色聲明,因為它使用不授予角色的委派權限的隱式授予。

請參閱下面沒有 wids 聲明的解碼令牌。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM