Grafana OAuth统一认证登录

可观测可视化 Grafana 版支持使用OAuth 2.0协议进行用户认证和应用授权。本文以阿里云系统模拟第三方应用为例介绍对接Grafana实现第三方应用登录的操作。

背景信息

OAuth(Open Authorization,开放授权)是一种开放协议,支持以简单和标准的方法为Web、移动或桌面应用程序进行安全授权,被授权的应用不需要使用用户名和密码即可访问受保护的信息。更多信息,请参见OAuth官方文档

用户自建系统在授权的前提下可以访问托管Grafana存储的各种信息。此处以阿里云系统授权登录托管Grafana为例,为您演示OAuth接入,其他产品账号授权的操作,请参见Grafana官方文档

基本流程

image

接下来将为您演示如何使用阿里云系统模拟上图的授权系统。下述步骤涉及的配置仅供参考,具体的系统配置属性在符合OAuth2.0标准下,以您的实际设置为准。

步骤一:创建应用

  1. 使用阿里云账号登录RAM控制台

  2. 在左侧导航栏选择集成管理 > OAuth 应用(公测)

  3. 企业应用页签,单击创建应用

  4. 创建应用面板,设置应用参数。

    1. 输入应用名称显示名称

    2. 选择应用类型

      • WebApp: 指基于浏览器交互的网络应用。

      • NativeApp:指操作系统中运行的本地应用,主要为运行在桌面操作系统或移动操作系统中的应用。

      • ServerApp:指直接访问阿里云服务,而无需依赖用户登录的应用,目前仅支持基于SCIM协议的用户同步应用。示例请参见通过SCIM协议将企业内部账号同步到阿里云RAM

    3. 设置访问令牌有效期时长。

      访问令牌有效期范围:900秒(15分钟)~10,800秒(3小时)。默认值为3,600秒。

    4. 对于WebAppNativeApp,设置刷新令牌有效期回调地址

      • 刷新令牌有效期范围:7,200秒(2小时)~31,536,000秒(1年)。默认值为2,592,000秒。

      • 回调地址为Grafana工作区的连接地址加/login/generic_oauth后缀,例如http://[Grafana连接地址:端口号]/login/generic_oauth。您可以在工作区信息页面查看Grafana工作区的连接地址和端口号,更多信息,请参见创建Grafana工作区

  5. 单击保存

步骤二:添加范围

  1. 企业应用页签,单击目标应用名称。

    说明

    在应用详情页面的基本信息区域可以查看应用ID,应用ID在步骤四设置参数时需要使用。

  2. 应用OAuth范围页签,单击添加OAuth范围

  3. 添加OAuth范围面板,选择添加profile范围。

    添加profile

  4. 单击确定

步骤三:创建密钥

  1. 在目标应用详情页面,单击应用密钥页签,然后单击创建密钥

  2. 创建应用密钥对话框,查看并复制创建成功的应用密钥,然后单击关闭

    重要
    • 应用密钥内容仅在创建时可见,不支持查询,请及时保存。

    • 每个应用最多允许创建2个应用密钥。

步骤四:修改工作区参数

  1. 登录ARMS控制台,在左侧导航栏选择Grafana服务 > 工作区管理

  2. 工作区管理页面,单击目标工作区ID。

  3. 在左侧导航栏单击参数设置

  4. 在左侧参数列表选择auth.generic_oauth,然后单击修改参数

  5. 参考以下配置,修改参数的运行参数,然后单击保存并生效

    name = Alibaba
    enabled = true
    allow_sign_up = true
    client_id = {应用ID}      //您可以在RAM控制台的应用基本信息页面查看应用ID。
    client_secret = {步骤三中创建的应用密钥}
    scopes = openid profile
    auth_url = https://signin.aliyun.com/oauth2/v1/auth
    token_url = https://oauth.aliyun.com/v1/token
    api_url = https://oauth.aliyun.com/v1/userinfo
    email_attribute_path=login_name
  6. 在左侧参数列表选择server,然后单击修改参数

  7. 参考以下配置,修改参数的运行参数,然后单击保存并生效

    root_url = http://[Grafana连接地址:端口号]
    说明

    您可以在工作区信息页面查看Grafana工作区的连接地址和端口号。