我正在尝试创建一个与 Microsoft Graph API(特别是 OneDrive)集成并使用 Azure AD B2C 进行身份验证的 Blazor 应用程序。
我正在使用 Microsoft.Identity.Web 0.3.1-preview
Setup.cs 如下:
public void ConfigureServices(IServiceCollection services)
{
// Configuration to sign-in users with Azure AD B2C
services.AddMicrosoftIdentityWebAppAuthentication(Configuration, "AzureAdB2C")
.EnableTokenAcquisitionToCallDownstreamApi(new string[] { "https://graph.microsoft.com/.default" })
.AddMicrosoftGraph("https://graph.microsoft.com/beta")
.AddInMemoryTokenCaches();
...
然后服务使用 ITokenAcquisition请求令牌,如下所示:
public MyService(ITokenAcquisition tokenAcquisition, IOptions<WebOptions> webOptionValue,
AuthenticationStateProvider AuthenticationStateProvider)
{
string result = await tokenAcquisition.GetAccessTokenForUserAsync(new string[] { "user.read" });
我正在使用 Microsoft 链接帐户进行身份验证,并且可以在 AuthenticationStateProvider 中看到 live.com 声明。
将基本 user.read 传递给 GetAccessTokenForUserAsync 会导致异常“请求中提供的范围 'user.read' 不受支持”。我尝试将范围指定为https://graph.microsoft.com/user.read但这只是返回 null。
任何建议将不胜感激。