Skip to content

外部版授权

0x01 关键信息

a. 适用场景

为外部用户配置项目空间访问权限,主要用于外部版 Grafana 仪表盘访问。

b. 相关链接

  • 授权入口:<BKTE_BKMONITOR_URL>/?bizId=-4220213#/external-auth
  • 外部访问:https://bkm.po.tencent.com/external/

0x02 代码片段

a. 配置项目授权人并创建权限

python
from typing import Any
from monitor.models import GlobalConfig
from monitor_web.iam.resources import create_permission

bk_biz_id: int = -4227107

# 增加项目授权人
authorizer_map, _ = GlobalConfig.objects.get_or_create(
    key="EXTERNAL_AUTHORIZER_MAP", 
    defaults={"value": {}}
)
authorizer_map.value[str(bk_biz_id)] = "rtx"
authorizer_map.save()

# 创建权限
params: dict[str, Any] = {
    "action_id": "view_grafana",
    "bk_biz_id": -4227107,
    # 来源:<BKTE_BKMONITOR_URL>/rest/v2/external/get_resource_by_action/?bk_biz_id=-4227107&action_id=view_grafana
    "resources": [
        "WOMyZdfSk",
        "bT8qy3NVz",
        "bT8qy3NVa",
        "af39mwhy5cnpcc",
        "df3dpb18r00zke",
        "0n7euhwj34jl",
        "ml1i5qsyuiwj",
        "ff39nkj1hiuiod",
        "cf7ybllytibk0d",
        "ff7iufcakhudce"
    ],
    "expire_time": "2026-10-31T23:59:59+08:00"
}

create_permission(["fixme:英文名"], params)