如需在自建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 版控制臺的應用列表為例。