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

Blazor WebAssembly+Duende.IdentityServer+BFF架构在HTTP协议下无法完成授权的问题求助

Blazor WebAssembly+Duende.IdentityServer+BFF架构在HTTP协议下无法完成授权的问题求助

大家好,我在开发环境遇到了一个授权相关的问题,想请教一下社区的各位大佬:

我有两个基于.NET 7的示例项目,一个是Duende Identity Server服务端,另一个是Blazor WebAssembly客户端,采用了最新版的Duende Identity Server并使用BFF(Backend For Frontend)协议。

问题描述

当客户端和服务端全部使用HTTPS协议时,一切都正常,Blazor客户端可以顺利完成认证和授权流程;但切换到HTTP协议后,就出现了授权失败的情况,日志输出如下:

Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2]
Authorization failed. These requirements were not met:
DenyAnonymousAuthorizationRequirement: Requires an authenticated user.

我清楚生产环境必须使用HTTPS,但当前处于开发调试阶段,理论上应该支持HTTP模式,所以想解决这个问题。

项目与复现步骤

我把项目代码放在了公开仓库里,大家可以克隆下来复现问题:

  • 复现HTTP模式的问题:直接运行两个项目——Binande.Identity和Binande.Admin.Server,就能看到授权失败的现象。
  • 验证HTTPS模式正常的步骤:
    1. 修改两个项目launchSettings.json中的applicationUrl,替换为HTTPS地址:
      • Binande.Admin.Server:"applicationUrl": "https://localhost:5002"
      • Binande.Identity:"applicationUrl": "https://localhost:5001"
    2. 修改Binande.Identity项目中IdentityServerConfig.cs里的交互式保密客户端配置:
      RedirectUris = { "https://localhost:5002/signin-oidc" },
      PostLogoutRedirectUris = { "https://localhost:5002" },
      
    3. 修改Binande.Admin.Server项目Program.cs中的Authority地址:
      options.Authority = "https://localhost:5001";
      
    完成以上配置后,HTTPS模式就能正常工作了。

我的疑问

想请教一下,在开发环境下,需要怎么调整配置,才能让这套Blazor WASM+Duende IDP+BFF的架构在HTTP协议下正常完成授权?

补充说明:我已经在Cookie策略和相关配置中设置了以下参数,但问题仍然存在:

  • options.RequireHttpsMetadata = false;
  • options.Cookie.SameSite = SameSiteMode.Lax;
  • options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;

感谢各位的帮助!

备注:内容来源于stack exchange,提问作者Milad Ashrafi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 13:33:13