全部产品
云市场

将链路追踪控制台页面嵌入自建 Web 应用

更新时间:2019-07-04 07:55:30

为提高效率,您可能需要在不登录阿里云控制台的情况下查看链路追踪控制台的页面,以免在两个系统之间来回切换。您可以使用链路追踪提供的单点登录方式将指定控制台页面嵌入到您自建的 Web 应用中。本教程以一个样例工程说明嵌入方法。

教程概述

预期结果

参照本教程的方法进行实际操作后将实现以下效果:

  • 可登录您的自有系统并浏览嵌入的应用列表、应用详情、调用查询等页面。
  • 可隐藏链路追踪页面的顶部导航栏和左侧导航栏。
  • 可通过访问控制 RAM 系统控制操作权限,例如将完整权限改为只读权限等。

访问流程

使用本教程所述方法访问链路追踪页面的流程如图所示。

准备工作

  • 获取示例代码:无需自行编写代码即可快速入门。

  • 创建 RAM 用户并添加权限

    首先使用阿里云账号(主账号)创建 RAM 用户并为其添加调用 STS 服务扮演 RAM 角色的权限。

    1. 登录 RAM 控制台,在左侧导航栏中选择人员管理 > 用户,并在用户页面上单击新建用户

    2. 新建用户页面的用户账号信息区域框中,输入登录名称显示名称。在访问方式区域框中,勾选编程访问,并单击确认

      说明: RAM 会自动为 RAM 用户创建 AccessKey(API 访问密钥)。出于安全考虑,RAM 控制台只提供一次查看或下载 AccessKeySecret 的机会,即创建 AccessKey 时,因此请务必将 AccessKeySecret 记录到安全的地方。

    3. 手机验证对话框中单击获取验证码,并输入收到的手机验证码,然后单击确定

      创建的 RAM 用户显示在用户页面上,但此时没有任何权限。

    4. 用户页面上找到创建好的用户,单击操作列中的添加权限

    5. 添加权限面板的选择权限区域框中,通过关键字搜索需要添加的权限策略 AliyunSTSAssumeRoleAccess,并单击权限策略将其添加至右侧的已选择列表中,然后单击确定

    6. 添加权限授权结果页面上,查看授权信息摘要,并单击完成

  • 创建 RAM 角色并添加权限

    接下来创建 RAM 角色并为其添加访问链路追踪控制台的权限。上一步创建的 RAM 用户将会扮演该 RAM 角色访问链路追踪控制台。

    1. 登录 RAM 控制台,在左侧导航栏中单击 RAM 角色管理,并在 RAM 角色管理页面上单击新建 RAM 角色
    2. 新建 RAM 角色面板中执行以下操作并单击确定
      1. 选择类型页面的当前可信实体类型区域框中选择阿里云账号,并单击下一步
      2. 配置角色页面的角色名称文本框内输入 RAM 角色名称,并单击完成
      3. 创建完成页面上单击为角色授权
    3. 添加权限面板的选择权限区域框中,通过关键字搜索需要添加的权限策略,并单击权限策略将其添加至右侧的已选择列表中,然后单击确定

      • 如需添加链路追踪的完整权限,则添加 AliyunTracingAnalysisFullAccess
      • 如需添加链路追踪的只读权限,则添加 AliyunTracingAnalysisReadOnlyAccess
    4. 添加权限面板的授权结果页面上,查看授权信息摘要,并单击完成

步骤一:登录自建 Web 应用并获取临时 AccessKey 和 Token

登录自建 Web 后,在 Web 服务端调用 STS AssumeRole 接口获取临时 AccessKey 和 Token,即临时身份。请选择一种方式调用该接口:

请注意,在示例代码中,您首先需要将以下参数替换为真实的值。

  1. String akId = "<accessKeyId>";
  2. String ak = "<accessKeySecret>";
  3. String roleArn = "<roleArn>";

其中,accessKeyIdaccessKeySecret 是准备工作中创建的 RAM 用户的 AccessKeyId 和 AccessKeySecret。

roleArn 是准备工作中创建的 RAM 角色的标识 ARN,可在 RAM 控制台的 RAM 角色基本信息页面获取。

步骤二:获取登录 Token

在通过 STS AssumeRole 接口获取临时 AccessKey 和 Token 后,调用登录服务接口获取登录 Token。

说明: STS 返回的安全 Token 中可能包含特殊字符,请对特殊字符进行 URL 编码后再输入。

请求样例:

  1. http://signin.aliyun.com/federation?Action=GetSigninToken
  2. &AccessKeyId=<STS 返回的临时 AccessKeyId>
  3. &AccessKeySecret=<STS 返回的临时 AccessKeySecret>
  4. &SecurityToken=<STS 返回的安全 Token>
  5. &TicketType=mini

步骤三:生成链路追踪的免登录链接并在自建 Web 服务端跳转

利用获取到的登录 Token 与待嵌入的链路追踪控制台页面链接生成免登录访问链接,以最终实现在自建 Web 中免登录访问链路追踪控制台页面的目的。

说明: 由于 Token 有效期为 3 小时,建议在自建 Web 应用中将链接设置为每次请求时生成新登录 Token,通过 302 请求返回进行跳转。

  1. 在链路追踪控制台获取待嵌入的控制台页面链接。例如杭州地域的应用列表页面的链接为:

    1. https://tracing-analysis.console.aliyun.com/?hideTopbar=true&hideSidebar=true#/appList/cn-hangzhou

    说明:hideTopbar 设为 true 表示隐藏顶部导航栏,将 hideSidebar 设为 true 表示隐藏左侧导航栏。

  2. 利用步骤二中获取到的登录 Token 与链路追踪控制台页面链接生成免登录访问链接。

    请求样例:

    1. http://signin.aliyun.com/federation?Action=Login
    2. &LoginUrl=<登录失效跳转的地址,一般配置为自建 Web 配置 302 跳转的 URL>
    3. &Destination=<链路追踪控制台页面链接>
    4. &SigninToken=<获取到的登录 Token>

查看结果

登录自建 Web 应用后,可见嵌入的链路追踪控制台页面效果如下图所示:

示例代码

本教程的示例代码基于 Java SDK,以嵌入链路追踪控制台的应用列表为例。

获取示例代码

更多信息