Grafana Azure AD SSO配置问题:仅允许指定组用户登录
解决方案:限制Grafana Azure AD SSO至指定组
要实现仅允许指定Azure AD组用户登录Grafana,需要从Grafana配置和Azure AD权限两方面调整,具体步骤如下:
1. 更新Grafana Azure AD认证配置
在Prometheus Helm Chart的配置中做以下修改:
- 扩展
scopes字段,添加GroupMember.Read.All(细粒度权限)或Directory.Read.All,让Grafana能够获取用户的AD组信息 - 在
allowed_groups中填入目标Azure AD组的对象ID(多个组用逗号分隔) - 移除
allowed_domains配置,避免域名限制与组限制叠加导致逻辑冲突
修改后的配置示例:
name = Azure AD enabled = true allow_sign_up = true auto_login = false client_id = APPLICATION_ID client_secret = CLIENT_SECRET scopes = openid email profile GroupMember.Read.All auth_url = token_url = allowed_domains = allowed_groups = a1b2c3d4-xxxx-xxxx-xxxx-xxxxe5f6g7h8,i9j0k1l2-xxxx-xxxx-xxxx-xxxxm3n4o5p6
2. 配置Azure AD应用权限
登录Azure Portal,找到你的Grafana注册应用,完成以下操作:
- 进入「API权限」页面,添加Microsoft Graph的应用权限:选择
GroupMember.Read.All或Directory.Read.All - 点击「授予管理员同意」,确保权限生效(必须完成此步骤,否则Grafana无法读取组数据)
3. 验证配置效果
- 执行Helm升级命令重新部署Grafana,让新配置生效:
helm upgrade <release-name> prometheus-community/grafana -f your-values.yaml - 测试:用不在指定组的同域名用户尝试登录,应被拒绝;组内用户可正常登录。
常见问题排查
- 确认
allowed_groups中填写的是组的Object ID(可在Azure AD组详情页获取),而非组名称或其他ID - 查看Grafana Pod日志(
kubectl logs <grafana-pod-name>),检查是否有组信息读取失败的报错(如权限不足、ID错误) - 若无需自动创建Grafana账号,可将
allow_sign_up设为false,需管理员手动添加符合条件的用户
内容的提问来源于stack exchange,提问作者Harshal
相关产品推荐
相关产品推荐

