Grafana azure SSO始终使用查看者角色(默认角色)登录

eqqqjvef  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(131)

我正在使用azure active directory对grafana应用程序进行身份验证和授权。
我已经按照给定的教程中提出:https://grafana.com/docs/grafana/latest/setup-grafana/configure-security/configure-authentication/azuread/
我用下面的compose文件启动容器:

version: '3.9'
services:
  grafana:
    image: grafana/grafana:9.4.7-ubuntu
    ports:
      - 3000:3000
    restart: unless-stopped
    volumes:
      - ./grafana_config.ini:/etc/grafana/grafana.ini
      - grafana-data:/var/lib/grafana

volumes:
  grafana-data:

配置文件如下:

[auth.azuread]
name = Azure AD
enabled = true
allow_sign_up = true
auto_login = true
client_id = <redacted_client_id>
client_secret = <redacted_client_secret>
scopes = openid email profile
auth_url = https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/authorize
token_url = https://login.microsoftonline.com/<TENANT_ID>/oauth2/v2.0/token
allowed_domains =
allowed_groups = <admin_group_object_id> <editor_object_id>
role_attribute_strict = false
allow_assign_grafana_admin = true
skip_org_role_sync = true
[log]
level = "debug"

我可以登录,但即使我是AD中所有安全组的成员,我在登录时仍然被分配了Viewer。我试着添加

role_attribute_path = contains(info.roles[*], 'admin') && 'GrafanaAdmin' || contains(info.roles[*], 'editor') && 'Editor' || 'Viewer'

[auth.azuread]下. ini文件中。
<admin_group_object_id>是AD中分配给应用程序的组的objectID,如教程中所述。
我试图获取令牌,但令牌没有登录到终端,也没有发送到应用程序浏览器。
我认为问题是应用程序中的role_mapping(即grafana app)端,但不确定如何在启动容器之前将AD内的objectIDMap到应用程序中的grafana角色。
我做错了什么?或者有其他办法解决这个问题吗?

zour9fqk

zour9fqk1#

请参阅链接的Azure身份验证文档:
默认情况下,Azure AD身份验证将根据在AzureAD中分配给用户的最高特权应用程序角色将用户Map到组织角色。
所以你不能使用role_attribute_path-它不支持这种类型的认证。
如果您想使用role_attribute_path,请使用正确配置的generic OAuth。Azure身份验证只是OAuth/OIDC,因此基本身份验证没有问题。

相关问题