如需在自建Web应用中免登录查看Grafana大盘的页面,您可将Grafana大盘嵌入自建Web应用,以避免系统间的来回切换。
背景信息
将Grafana大盘嵌入自建Web应用可以实现以下效果:
可登录自有系统并浏览嵌入的Grafana大盘。
可隐藏Grafana的顶部菜单栏和左侧导航栏。具体操作,请参见本文步骤五中的相关内容。
访问流程
外部系统访问Grafana的流程如下图所示。
步骤一:创建RAM用户并添加权限
使用阿里云账号创建RAM用户并为其添加调用STS服务扮演RAM角色的权限。
登录RAM控制台。
在左侧导航栏,选择 。
在用户页面,单击创建用户。
在创建用户页面的用户账号信息区域,输入登录名称和显示名称,在访问方式区域,选中控制台访问,然后单击确定。
重要RAM会自动为RAM用户创建AccessKey(API访问密钥)。出于安全考虑,RAM控制台只提供一次查看或下载AccessKeySecret的机会,即创建AccessKey时,请务必将AccessKeySecret记录到安全的地方。
返回用户页面,找到创建好的用户,单击操作列的添加权限。
在新增授权面板的权限策略区域,通过关键字搜索需要添加的权限策略AliyunSTSAssumeRoleAccess,并单击权限策略将其添加至右侧的已选择列表,然后单击确认新增授权。
查看授权信息摘要,然后单击关闭。
步骤二:创建RAM角色并添加权限
创建RAM角色并为其添加访问控制台的权限。RAM用户将会扮演该RAM角色访问控制台。
在RAM控制台左侧导航栏,选择 。
在角色页面,单击创建角色。
在创建角色页面,执行以下操作:
在选择类型配置向导的选择可信实体类型区域,选择阿里云账号,然后单击下一步。
在配置角色配置向导的角色名称文本框,输入角色名称,然后单击完成。
在创建完成配置向导单击为角色授权。
在新增授权面板的权限策略区域,搜索需要添加的权限策略,单击权限策略将其添加至右侧的已选择列表,然后单击确认新增授权。
您可以根据需要为RAM角色赋予以下ARMS权限:
AliyunARMSFullAccess:ARMS的完整权限。
AliyunARMSReadOnlyAccess:ARMS的只读权限。
查看授权信息摘要,然后单击关闭。
步骤三:获取临时AccessKey和Token
登录自建Web应用,然后在Web服务端调用STS的AssumeRole接口获取临时AccessKey和Token,即临时身份。AssumeRole接口详情,请参见AssumeRole。
您可以选择以下方式调用AssumeRole接口:
通过OpenAPI开发者门户调用。
通过Java SDK调用。
本文以通过Java SDK调用为例。
您在使用Java SDK时需要注意填写以下参数:
String accessKey = "<accessKeyId>"; //RAM用户的AccessKeyId。
String accessSecret = "<accessKeySecret>"; //RAM用户的AccessKeySecret。
String roleArn = "<roleArn>"; //RAM角色的标识ARN。
RAM用户的AccessKeyId和AccessKeySecret为创建RAM用户时获取。获取操作,请参见创建AccessKey。
获取RAM角色的roleArn的操作步骤如下:
在RAM控制台 页面下方的RAM角色列表中,单击目标RAM角色名称。
在RAM角色详情页面的基本信息区域,复制ARN信息。
步骤四:获取登录Token
通过STS的AssumeRole接口获取临时AccessKey和Token后,调用登录服务接口获取登录Token。
STS返回的安全Token中可能包含特殊字符,请对特殊字符进行URL编码后再输入。
请求样例:
https://signin.aliyun.com/federation?Action=GetSigninToken
&AccessKeyId=<STS返回的临时AccessKeyId>
&AccessKeySecret=<STS返回的临时AccessKeySecret>
&SecurityToken=<STS返回的安全Token>
如果为虚商接入,则还需添加&TicketType=mini
参数。
步骤五:生成免登录链接
利用获取到的登录Token与待嵌入的Grafana大盘页面链接生成免登录访问链接,以最终实现在自建Web应用中免登录访问Grafana页面的目的。
由于Token有效期为3小时,建议在自建Web应用中将链接设置为每次请求时生成新登录Token。
在Grafana获取待嵌入的大盘页面的URL链接。
说明在URL链接的search部分添加
kiosk=tv
可以隐藏原有的左侧导航栏。在URL链接的search部分添加
kiosk
可以隐藏顶部菜单栏和左侧导航栏。在URL链接的search部分添加
kiosk=tv2
可以隐藏顶部菜单栏和左侧导航栏,但保留右上角的时间选择器。
利用登录Token与Grafana大盘链接生成免登录访问链接。
http://signin.aliyun.com/federation?Action=Login &LoginUrl=<登录失效跳转的地址,一般配置为自建Web应用配置302跳转的URL> &Destination=<Grafana大盘链接> &SigninToken=<获取到的登录Token>
在浏览器访问该免登录访问链接。