使用 Azure AD B2C 的 Blazor WASM 无法调用 Microsoft.Graph api

Blazor WASM using Azure AD B2C fails calling Microsoft.Graph api

情况:

  1. Hosted Blazor WASM using Azure AD B2C
  2. Graph API registerd

第 1 步工作正常,我可以登录并获得具有正确声明的访问令牌,因此我可以调用我的后端 API。

当我打开第 2 步并添加 GraphServiceClient 时,一切都停止工作并且登录失败并出现以下错误:There was an error trying to log you in: ''。我认为添加范围 https://graph.microsoft.com/User.Read 会导致登录失败。我的想法是因为该范围未在我的 Azure AD B2C 租户中的 SPA 应用程序注册中定义,但我不知道如何添加该范围。在 Api 权限下我无法添加该范围。

我是不是漏掉了什么?

我发现在使用 Azure AD B2C 进行身份验证时,无法直接从 Blazor WASM 使用图 API。这仅适用于 Azure AD。

要解决此问题,您必须在后端控制器中创建受保护的端点,并使用 clientid+secret 凭据从那里调用 MS Graph API,并将它们发送回 webassembly 客户端。

出于性能原因并防止查询 MS Graph 的额外开销API,您可以考虑在您自己的后端缓存用户。