菜单
Grafana文档 设置 配置安全 配置身份验证 配置Azure广告OAuth2身份认证

配置Azure广告OAuth2身份认证

Azure广告身份验证允许您使用Azure Active Directory租户为Grafana身份提供者。您可以使用Azure广告应用程序角色分配给用户和组Grafana角色从Azure门户。这个主题有以下部分:

创建应用程序Azure的广告

使Azure广告OAuth2 Azure广告登记您的应用程序。

  1. 登录到Azure门户,然后单击Azure活动目录的菜单。

  2. 如果你有多个租户,在右上角选择您的帐户。设置您的会话租户您希望使用Azure的广告。

  3. 管理的菜单,点击应用程序注册>新的注册。输入一个描述性的名称。

  4. 重定向的URI,选择应用类型网络

  5. 添加以下重定向urlhttps:// < grafana域> /登录/ azureadhttps:// < grafana域>然后单击注册。应用程序的概述页面打开。

  6. 注意应用程序ID。这是OAuth客户机ID。

  7. 点击端点从顶部菜单。

    • 注意OAuth 2.0授权端点(v2)URL。这是授权URL。
    • 注意OAuth 2.0令牌端点(v2)。这是标记的URL。
  8. 点击证书和秘密下,然后添加一个新条目客户的秘密使用以下配置。

    • 描述:Grafana OAuth
    • 到期:永远不要
  9. 点击添加然后复制键值。这是OAuth客户秘密。

  10. 点击清单,然后定义所需的应用程序角色值Grafana:查看器,编辑或管理员。如果没有定义,所有用户查看者角色。每个角色都需要一个惟一的ID,您可以生成在Linux上uuidgen,并通过微软在Windows PowerShellNew-Guid

  11. 包括独特的ID在配置文件中:

    “appRoles”: [{“allowedMemberTypes”:(“用户”),“描述”:“Grafana org admin用户”,“displayName”:“Grafana org管理”,“id”:“SOME_UNIQUE_ID”,“isEnabled”:真的,“朗”:空,“起源”:“应用程序”,“价值”:“admin”}, {“allowedMemberTypes”:(“用户”),“描述”:“Grafana只读用户”,“displayName”:“Grafana查看器”,“id”:“SOME_UNIQUE_ID”,“isEnabled”:真的,“朗”:空,“起源”:“应用程序”,“价值”:“观众”},{“allowedMemberTypes”:(“用户”),“描述”:“Grafana编辑用户”,“displayName”:“Grafana编辑器”,“id”:“SOME_UNIQUE_ID”,“isEnabled”:真的,“朗”:空,“起源”:“应用程序”,“价值”:“编辑器”}),
  12. Azure活动目录然后企业应用程序。搜索应用程序,点击它。

  13. 点击用户和组并将用户/组添加到Grafana角色使用添加用户

地图的角色

默认情况下,Azure广告认证组织将用户映射到角色基于最AzureAD特权应用程序角色分配给用户。

如果没有找到应用程序的角色,用户分配指定的角色auto_assign_org_role选项。可以通过设置禁用这个默认角色分配role_attribute_strict = true。它否认了如果没有角色或用户访问返回一个无效的作用。

在每一个登录用户组织角色将重置AzureAD相匹配的应用程序角色和他们的组织成员将被重置为默认的组织。

如果Azure广告认证并不打算同步用户角色和组织会员,oauth_skip_org_role_update_sync应启用。看到configure-grafana为更多的细节。

指定服务器管理员权限

在Grafana v9.2后来版本。

如果应用程序角色受到GrafanaGrafanaAdmin,Grafana授予用户服务器管理员特权。
这是非常有用的,如果你想服务器管理员权限授予用户的一个子集。
Grafana也分配了用户管理组织默认的角色。

设置allow_assign_grafana_admin(auth.azuread)必须设置为真正的对于这个工作。
如果设置设置为,用户被分配的角色管理默认的组织,而不是服务器管理员特权。

{“allowedMemberTypes”(“用户”):,“描述”:“Grafana服务器管理员用户”,“displayName”:“Grafana服务器管理”,“id”:“SOME_UNIQUE_ID”、“isEnabled”:真的,“朗”:空,“起源”:“应用程序”,“价值”:“GrafanaAdmin”}

使Azure广告OAuth Grafana

  1. 添加以下的Grafana配置文件:
(auth.azuread)name = Azure AD enabled = true allow_sign_up = true client_id = APPLICATION_ID client_secret = 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 = role_attribute_strict = false allow_assign_grafana_admin = false

你也可以使用这些环境变量来配置client_idclient_secret:

GF_AUTH_AZUREAD_CLIENT_ID GF_AUTH_AZUREAD_CLIENT_SECRET

注意:验证Grafanaroot_url设置在Azure应用程序重定向url。

配置刷新令牌

在Grafana v9.3后来版本。

注意:这个特性是后面的accessTokenExpirationCheck功能切换。

当用户登录使用OAuth提供者,Grafana验证访问令牌没有过期。当一个访问令牌到期,Grafana使用提供刷新令牌(如果存在)来获得一个新的访问令牌。

Grafana使用刷新令牌来获得一个新的访问令牌不需要用户再次登录。如果一个刷新令牌不存在,Grafana日志后的用户的系统访问令牌已经过期。

使AzureAD刷新令牌,扩展作用域(auth.azuread)offline_access

配置允许组

限制通过身份验证的用户访问一个或多个组的成员,集allowed_groups逗号或空格分隔的列表的组对象id。你可以找到对象id为一个特定的组织在Azure门户:

  1. Azure Active Directory - >组。如果你想只给访问组的成员例子的IDfba bab1c86 8 - 8 - 33 - e5 - 2089 - 1 - d1c80ec267d,然后设置以下:

    fba allowed_groups = 8 bab1c86 - 8 - 33 - e5 - 2089 - 1 - d1c80ec267d
  2. 验证组属性在Azure广告应用程序启用注册导航到清单文件Azure门户>Azure活动目录>应用程序注册>选择应用程序- >清单,并设置如下:

    :“groupMembershipClaims ApplicationGroup SecurityGroup”

配置允许域

allowed_domains选择限制访问用户属于特定的域。域与空间或逗号分开。例如,

allowed_domains = mycompany.com mycompany.org

团队同步(企业)

与团队同步你可以映射Azure Grafana广告组团队,这样你的用户将会自动被添加到正确的团队。

你可以参考Azure广告组的组对象ID,fba bab1c86 8 - 8 - 33 - e5 - 2089 - 1 - d1c80ec267d

要了解更多,请参考团队同步文档。

常见故障排除

下面是一些常见的问题和细节您可以运行Grafana配置Azure广告时的身份验证。

用户超过200组作业

支持Grafana v8.5后来版本。

确保令牌的大小不超过HTTP头大小限制,Azure广告限制的对象id,它包括团体声称。如果一个用户组的成员比超龄的限制(200),那么Azure广告不会排放令牌并发出的团体声称一群超龄索赔。

更多的信息在组超龄的索赔

如果Grafana收到一个令牌和一群超龄而不是团体声称,Grafana试图检索用户的组成员通过调用包括端点。

注意:令牌必须包括GroupMember.Read.All权限组超龄声称调用成功。可能需要管理员同意许可。

力获取组织从微软图形API

力抓取组织从微软图形API,而不是id_token。您可以使用force_use_graph_api配置选项。

force_use_graph_api = true