You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor Server .NET7配置Microsoft Graph与Azure AD SSO时遇认证错误

问题排查与解决方案

错误根源

错误AADSTS700025的核心原因是:你的Azure应用注册被标记为公共客户端,这类客户端不允许提交client_secret或client_assertion。但Blazor Server属于机密客户端(运行在服务器端,可安全存储密钥),因此必须修正应用注册的客户端类型配置。

步骤1:修正Azure门户应用注册配置

  1. 登录Azure门户,找到目标应用注册
  2. 进入管理 > 认证页面
  3. 在高级设置区域,将允许公共客户端流设置为否
  4. 保存更改

步骤2:确认代码与配置正确性

验证appSettings.json配置

确保AzureAd中的ClientSecret正确,同时推荐使用Graph API的v1.0版本(除非你明确需要beta特性):

"AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "mydomain",
    "TenantId": "mytenantId",
    "ClientId": "myClientId",
    "CallbackPath": "/signin-oidc",
    "ClientSecret": "mySecret"
},
"DownstreamApi": {
    "BaseUrl": "https://graph.microsoft.com/v1.0",
    "Scopes": "user.read"
}

确认Program.cs配置

你的现有代码逻辑是正确的,无需大幅修改:

string[] initialScopes = builder.Configuration.GetValue<string>("DownstreamApi:Scopes")?.Split(' ');

builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
              .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd"))
              .EnableTokenAcquisitionToCallDownstreamApi(initialScopes)
              .AddMicrosoftGraph(builder.Configuration.GetSection("DownstreamApi"))
              .AddInMemoryTokenCaches();

builder.Services.AddControllersWithViews(options =>
{
    var policy = new AuthorizationPolicyBuilder()
        .RequireAuthenticatedUser()
        .Build();
    options.Filters.Add(new AuthorizeFilter(policy));
});

builder.Services.AddAuthorization(options =>
{
    options.FallbackPolicy = options.DefaultPolicy;
});

builder.Services.AddRazorPages().AddMicrosoftIdentityUI();
builder.Services.AddServerSideBlazor().AddMicrosoftIdentityConsentHandler();

额外说明

  • 移除Graph相关配置后登录正常,是因为此时应用仅完成身份验证流程,无需请求下游API,因此不会触发使用client_secret获取令牌的逻辑
  • 微软文档中提到的客户端密钥,仅针对机密客户端(如Blazor Server),公共客户端(如Blazor WASM)才不需要密钥

内容的提问来源于stack exchange,提问作者SlappingTheBass12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:23:27