如需在自建Web应用中免登录查看ARMS控制台的页面,您可将ARMS控制台嵌入自建Web应用,以此避免系统间的来回切换。

背景信息

将ARMS控制台嵌入自建Web应用可以实现以下效果:

  • 可登录自有系统并浏览嵌入的ARMS控制台的应用列表、应用详情、调用查询等页面。
  • 可隐藏ARMS控制台的顶部菜单栏和左侧导航栏。具体操作,请参见隐藏导航栏
  • 可通过访问控制RAM控制操作权限,例如将完整权限改为只读权限。具体操作,请参见借助RAM用户实现分权

示例代码

如需快速体验将将ARMS页面嵌入自建Web应用的效果,您可以下载并使用示例代码

步骤一:创建RAM用户并添加权限

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

  1. 登录RAM控制台
  2. 在左侧导航栏,选择人员管理 > 用户
  3. 用户页面,单击创建用户
  4. 创建用户页面的用户账号信息区域,输入登录名称显示名称,在访问方式区域,选中编程访问,然后单击确定
    注意 RAM会自动为RAM用户创建AccessKey(API访问密钥)。出于安全考虑,RAM控制台只提供一次查看或下载AccessKeySecret的机会,即创建AccessKey时,因此请务必将AccessKeySecret记录到安全的地方。
  5. 手机验证对话框,单击获取验证码,输入收到的手机验证码,然后单击确定
  6. 用户页面,找到创建好的用户,单击操作列的添加权限
  7. 添加权限面板的选择权限区域,通过关键字搜索需要添加的权限策略AliyunSTSAssumeRoleAccess,并单击权限策略将其添加至右侧的已选择列表,然后单击确定
    Add Permission For User
  8. 添加权限授权结果页面,查看授权信息摘要,然后单击完成

步骤二:创建RAM角色并添加权限

创建RAM角色并为其添加访问控制台的权限。RAM用户将会扮演该RAM角色访问控制台。

  1. 登录RAM控制台
  2. 在左侧导航栏,单击RAM角色管理
  3. RAM角色管理页面,单击创建RAM角色
  4. 创建RAM角色面板,执行以下操作:
    1. 选择类型页面的当前可信实体类型区域,选择阿里云账号,然后单击下一步
    2. 配置角色页面的角色名称文本框,输入RAM角色名称,然后单击完成
    3. 创建完成页面,单击为角色授权
  5. 添加权限面板的选择权限区域,搜索需要添加的权限策略,单击权限策略将其添加至右侧的已选择列表,然后单击确定
    您可以根据需要为RAM角色赋予以下ARMS权限:
    • AliyunARMSFullAccess:ARMS的完整权限。
    • AliyunARMSReadOnlyAccess:ARMS的只读权限。
  6. 添加权限授权结果页面,查看授权信息摘要,然后单击完成

步骤三:获取临时AccessKey和Token

登录自建Web,然后在Web服务端调用STS的AssumeRole接口获取临时AccessKey和Token,即临时身份。AssumeRole接口详情,请参见AssumeRole

您可以选择以下方式调用AssumeRole接口:

本文以通过Java SDK调用为例。

您在使用Java SDK时需要注意填写以下参数:

String accessKey = "<accessKeyId>"; //RAM用户的AccessKeyId。
String accessSecret = "<accessKeySecret>"; //RAM用户的AccessKeySecret。
String roleArn = "<roleArn>"; //RAM角色的标识ARN。

RAM用户的AccessKeyId和AccessKeySecret为创建RAM用户时获取。

获取RAM角色的roleArn的操作步骤如下:

  1. 登录RAM控制台
  2. 在左侧导航栏,单击RAM角色管理
  3. RAM角色管理页面下方的RAM角色列表,单击目标RAM角色名称。
  4. 在RAM角色详情页面的基本信息区域,复制ARN信息。
    Example ARN

步骤四:获取登录Token

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

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

请求样例:

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

步骤五:生成免登录链接

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

说明 由于Token有效期为3小时,建议在自建Web应用中将链接设置为每次请求时生成新登录Token。
  1. 在ARMS控制台获取待嵌入的控制台页面的URL链接。
    例如上海地域的 应用列表页面的URL链接为:
    https://arms.console.aliyun.com/apm?iframeMode=true&demo=1&pid=ac346dab-419d-48f5-b06a-e1c331c5c93e&regionId=cn-shanghai#/ac346dab-419d-48f5-b06a-e1c331c5c93e/home
    说明
    • URL链接必须为ARMS应用监控的控制台地址,暂不支持ARMS前端监控的控制台地址。
    • 在URL链接的search部分添加iframeMode=true设置,可以隐藏ARMS控制台原有的顶部菜单栏和左侧导航栏。
  2. 利用登录Token与ARMS控制台页面链接生成免登录访问链接。
    http://signin.aliyun.com/federation?Action=Login
        &LoginUrl=<登录失效跳转的地址,一般配置为自建Web配置302跳转的URL>
        &Destination=<ARMS控制台页面链接>
        &SigninToken=<获取到的登录Token>
  3. 在浏览器访问该免登录访问链接。