如需在自建Web应用中免登录查看可观测链路 OpenTelemetry 版控制台的页面,您可将可观测链路 OpenTelemetry 版控制台嵌入自建Web应用,以此避免系统间的来回切换。
教程概述
预期结果
参照本教程的方法进行实际操作后将实现以下效果:
可登录您的自有系统并浏览嵌入的应用列表、应用详情、调用查询等页面。
可隐藏可观测链路 OpenTelemetry 版页面的顶部导航栏和左侧导航栏。
可通过访问控制RAM系统控制操作权限,例如将完整权限改为只读权限等。
访问流程
使用本教程所述方法访问可观测链路 OpenTelemetry 版页面的流程如图所示。
步骤一:创建RAM用户并添加权限
首先使用阿里云账号创建RAM用户并为其添加调用STS服务扮演RAM角色的权限。
使用阿里云账号(主账号)或RAM管理员登录RAM控制台。
在左侧导航栏,选择 。
在用户页面,单击创建用户。
在创建用户页面的用户账号信息区域框中,输入登录名称和显示名称。在访问方式区域框中,勾选Open API调用访问,并单击确定。
重要RAM会自动为RAM用户创建AccessKey(API访问密钥)。出于安全考虑,RAM控制台只提供一次查看或下载AccessKeySecret的机会,即创建AccessKey时,请务必将AccessKeySecret记录到安全的地方。
在用户页面,单击目标RAM用户操作列的添加权限。
在添加权限面板的选择权限区域框中,通过关键字搜索需要添加的权限策略AliyunSTSAssumeRoleAccess,并单击权限策略将其添加至右侧的已选择列表中,然后单击确定。
单击确定。
单击完成。
步骤二:创建RAM角色并添加权限
接下来创建RAM角色并为其添加访问可观测链路 OpenTelemetry 版控制台的权限。上一步创建的RAM用户将会扮演该RAM角色访问可观测链路 OpenTelemetry 版控制台。
使用RAM管理员登录RAM控制台。
在左侧导航栏,选择 。
在角色页面,单击创建角色。
在创建角色面板中执行以下操作。
在选择类型页面的选择可信实体类型区域框中选择阿里云账号,并单击下一步。
在配置角色页面的角色名称文本框内输入角色名称,并单击完成。
在创建完成页面上单击为角色授权。
在添加权限面板的选择权限区域框中,通过关键字搜索需要添加的权限策略,并单击权限策略将其添加至右侧的已选择列表中,然后单击确定。
如需添加可观测链路 OpenTelemetry 版的完整权限,则添加AliyunTracingAnalysisFullAccess。
如需添加可观测链路 OpenTelemetry 版的只读权限,则添加AliyunTracingAnalysisReadOnlyAccess。
在添加权限面板的授权结果页面上,查看授权信息摘要,并单击完成。
步骤三:获取临时AccessKey和Token
登录自建Web后,在Web服务端调用STS AssumeRole接口获取临时AccessKey和Token,即临时身份。请选择一种方式调用该接口:
请注意,在示例代码中,您首先需要将以下参数替换为真实的值。
String akId = "<accessKeyId>";
String ak = "<accessKeySecret>";
String roleArn = "<roleArn>";
其中,<accessKeyId>和<accessKeySecret>是步骤一中创建的用户的AccessKeyId和AccessKeySecret。获取操作,请参见创建AccessKey。
<roleArn>是准备工作中创建的RAM角色的标识ARN,可在RAM控制台的角色基本信息页面获取。
步骤四:获取登录Token
在通过STS AssumeRole接口获取临时AccessKey和Token后,调用登录服务接口获取登录Token。
STS返回的安全Token中可能包含特殊字符,请对特殊字符进行URL编码后再输入。
请求样例:
http://signin4service.aliyun.com/federation?Action=GetSigninToken
&AccessKeyId=<STS返回的临时AccessKeyId>
&AccessKeySecret=<STS返回的临时AccessKeySecret>
&SecurityToken=<STS返回的安全Token>
如果为虚商接入,则还需添加&TicketType=mini
参数。
步骤五:生成免登录链接
利用获取到的登录Token与待嵌入的可观测链路 OpenTelemetry 版控制台页面链接生成免登录访问链接,以最终实现在自建Web中免登录访问可观测链路 OpenTelemetry 版控制台页面的目的。
由于Token有效期为3小时,建议在自建Web应用中将链接设置为每次请求时生成新登录Token,通过302请求返回进行跳转。
在可观测链路 OpenTelemetry 版控制台获取待嵌入的控制台页面链接。例如杭州地域的应用列表页面的链接为:
https://tracing-analysis.console.aliyun.com/?hideTopbar=true&hideSidebar=true#/appList/cn-hangzhou
说明将hideTopbar设为true表示隐藏顶部导航栏,将hideSidebar设为true表示隐藏左侧导航栏。
利用步骤二中获取到的登录Token与可观测链路 OpenTelemetry 版控制台页面链接生成免登录访问链接。 请求样例:
http://signin.aliyun.com/federation?Action=Login &LoginUrl=<登录失效跳转的地址,一般配置为自建Web配置302跳转的URL> &Destination=<可观测链路 OpenTelemetry 版控制台页面链接> &SigninToken=<获取到的登录Token>
执行结果
登录自建Web应用后,可见嵌入的可观测链路 OpenTelemetry 版控制台页面效果如下图所示:
操作样例
本教程的示例代码基于Java SDK,以嵌入可观测链路 OpenTelemetry 版控制台的应用列表为例。