如需在自建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>
在瀏覽器訪問該免登錄訪問鏈接。