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

Blazor Server应用基于Azure AD组的授权策略配置问题

Blazor Azure AD组授权策略配置方案

1. 确保Azure AD应用能获取组声明

  • 登录Azure门户,进入Azure Active Directory → 应用注册,找到你的Blazor应用。
  • 切换到令牌配置选项卡,点击添加组声明。
  • 在弹出窗口中选择安全组,勾选需要的声明类型(推荐选组ID,比组名称更稳定),保存配置。

2. 在Program.cs中配置授权策略

修改现有AddAuthorization代码块,添加关联Azure AD组的策略:

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

    // 配置ViewCustomer策略,关联目标Azure AD组的对象ID
    options.AddPolicy("ViewCustomer", policy =>
        // 替换为你的Azure AD组对象ID
        policy.RequireClaim("groups", "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"));

    // 可选:允许多个组用户访问该策略
    // options.AddPolicy("ViewCustomer", policy =>
    //     policy.RequireClaim("groups", "组ID1", "组ID2"));
});

如何获取Azure AD组ID?

进入Azure门户的Azure Active Directory → 组,选中目标组,复制页面上的对象ID即可。

3. 应用策略到组件/页面

在需要权限控制的Blazor组件或页面上添加特性:

[Authorize(Policy = "ViewCustomer")]
public partial class CustomerPage : ComponentBase
{
    // 页面逻辑
}

额外说明

  • 如果想用组名称判断权限,需在Azure AD组声明配置中勾选组名称,然后将策略中的"groups"替换为对应声明名称(通常是"group_name"),传入组名称即可。但组名称可能变更,组ID固定更可靠。
  • 确保Blazor应用已正确配置Azure AD认证(即AddMicrosoftIdentityWebApp部分配置了租户ID、客户端ID等参数),否则无法获取组声明。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 22:05:40