OAuth集成
Grafana企业指标支持OpenID连接(OIDC)核心标准来验证令牌。这允许您将宝石与现有OAuth牌提供者在您的组织。
支持OIDC,提供的URL OIDC提供者(发行人)auth.admin.oidc.issuer-url
设置。提供者需要OIDC发现端点(也称为“众所周知的端点”)< issuer-url > / .well-known / openid-configuration
描述的在openid标准。
包括一个JWT HTTP基本身份验证的密码或不记名令牌在持票人身份验证的一部分。持票人牌应该两部分隔开:
。第一部分是租户ID。第二部分是JWT。
验证了JWT反对OIDC提供者指定。如果它是有效的,那么一个访问政策的名字是提取。的正则表达式auth.admin.oidc.access_policy_regex
对运行中的每个值JWT声称字段中指定吗auth.admin.oidc.access_policy_claim
,它可以是一个字符串或字符串的列表。
sub-match必须提取访问政策。如果JWT声称字段中的值是一个字符串,则只使用第一sub-match。如果它是一个字符串列表,然后使用第一submatch为每一个条目。您可以使用正则表达式(. *)
对整个领域。
正则表达式语法RE2公司。
配置
使用OIDC,指定auth.type
作为企业
。下面是一个示例验证部分:
身份验证:类型:企业管理:oidc: issuer_url: https://accounts.authprovider.com/realms/example access_policy_claim:“子”access_policy_regex:“”- ([0 - 9] +)。*”
这是一个有效载荷部分例子JWT:
{“子”:“abc”- 1234567890”,“名字”:“John Doe”,“管理”:真正的}
提取的访问策略1234567890
。
注意:OpenID连接(OIDC)转换编码访问政策小写(
downcase
)。例如,如果您的OpenID系统有一个访问政策Team1
,那么你需要创建一个访问政策宝石team1
因此,集成工作。
多路访问策略
可以提供一个字符串数组JWT索赔。如果这个数组只包含一个条目,那么行为时是一样的在这一领域提供一个字符串。如果多个访问政策提供一个列表JWT声称,他们将聚合成一个“虚拟”访问政策。这种“虚拟”访问政策将为欧盟提供度量读访问中包含的所有租户的最初的访问策略。例如,鉴于JWT和配置如下:
{"子":[“abc”- 1234567890”,“”- 9876543210 - xyz”),“名字”:“John Doe”,“管理”:真正的}
由此产生的政策将是一个聚合的访问1234567890
和9876543210
。如果1234567890
提供的读和写访问租户1
,9876543210
提供的读和写访问租户2
和tenant 3
,由此产生的虚拟访问政策将提供只读访问权租户1
,租户2
,tenant 3
。这个生成的访问策略缓存中指定的auth.cache.ttl.duration
,默认为10米
。