如需在自建Web應用中免登入查看Managed Service for OpenTelemetry控制台的頁面,您可將Managed Service for OpenTelemetry控制台嵌入自建Web應用,以此避免系統間的來回切換。
教程概述
預期結果
參照本教程的方法進行實際操作後將實現以下效果:
可登入您的自有系統並瀏覽嵌入的應用列表、應用詳情、調用查詢等頁面。
可隱藏Managed Service for OpenTelemetry頁面的頂部導覽列和左側導覽列。
可通過存取控制RAM系統控制操作許可權,例如將完整許可權改為唯讀許可權等。
訪問流程
使用本教程所述方法訪問Managed Service for OpenTelemetry頁面的流程如圖所示。
步驟一:建立RAM使用者並添加許可權
首先使用阿里雲帳號建立RAM使用者並為其添加調用STS服務扮演RAM角色的許可權。
使用阿里雲帳號(主帳號)或Resource Access Management員登入RAM控制台。
在左側導覽列,選擇 。
在使用者頁面,單擊建立使用者。
在建立使用者頁面的使用者帳號資訊地區框中,輸入登入名稱稱和顯示名稱。在訪問方式地區框中,勾選使用永久 AccessKey 訪問,並單擊確定。
重要RAM會自動為RAM使用者建立AccessKey(API存取金鑰)。出於安全考慮,RAM控制台只提供一次查看或下載AccessKeySecret的機會,即建立AccessKey時,請務必將AccessKeySecret記錄到安全的地方。
在使用者頁面,單擊目標RAM使用者操作列的添加許可權。
您也可以選中多個RAM使用者,單擊使用者列表下方的添加許可權,為RAM使用者大量授權。
在新增授權面板,為RAM使用者添加許可權。
選擇資源範圍。
帳號層級:許可權在當前阿里雲帳號內生效。
資源群組層級:許可權在指定的資源群組內生效。
重要指定資源群組授權生效的前提是該雲端服務及資源類型已支援資源群組,詳情請參見支援資源群組的雲端服務。資源群組授權樣本,請參見使用資源群組限制RAM使用者管理指定的ECS執行個體。
選擇授權主體。
授權主體即需要添加許可權的RAM使用者。系統會自動選擇當前的RAM使用者。
選擇權限原則AliyunSTSAssumeRoleAccess。
單擊確認新增授權。
單擊關閉。
步驟二:建立RAM角色並添加許可權
接下來建立RAM角色並為其添加訪問Managed Service for OpenTelemetry控制台的許可權。上一步建立的RAM使用者將會扮演該RAM角色訪問Managed Service for OpenTelemetry控制台。
使用Resource Access Management員登入RAM控制台。
在左側導覽列,選擇 。
在角色頁面,單擊建立角色。
在建立角色面板中執行以下操作。
在選擇類型頁面的選擇可信實體類型地區框中選擇阿里雲帳號,並單擊下一步。
在配置角色頁面的角色名稱文字框內輸入角色名稱,並單擊完成。
在建立完成頁面上單擊為角色授權。
在添加許可權面板的選擇許可權地區框中,通過關鍵字搜尋需要添加的權限原則,並單擊權限原則將其添加至右側的已選擇列表中,然後單擊確定。
如需添加Managed Service for OpenTelemetry的完整許可權,則添加AliyunTracingAnalysisFullAccess。
如需添加Managed Service for 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與待嵌入的Managed Service for OpenTelemetry控制台頁面連結產生免登入訪問連結,以最終實現在自建Web中免登入訪問Managed Service for OpenTelemetry控制台頁面的目的。
由於Token有效期間為3小時,建議在自建Web應用中將連結設定為每次請求時產生新登入Token,通過302請求返回進行跳轉。
在Managed Service for OpenTelemetry控制台擷取待嵌入的控制台頁面連結。例如杭州地區的應用列表頁面的連結為:
https://tracing-analysis.console.aliyun.com/?hideTopbar=true&hideSidebar=true#/appList/cn-hangzhou
說明將hideTopbar設為true表示隱藏頂部導覽列,將hideSidebar設為true表示隱藏左側導覽列。
利用步驟二中擷取到的登入Token與Managed Service for OpenTelemetry控制台頁面連結產生免登入訪問連結。 請求範例:
http://signin.aliyun.com/federation?Action=Login &LoginUrl=<登入失效跳轉的地址,一般配置為自建Web配置302跳轉的URL> &Destination=<可觀測鏈路 OpenTelemetry 版控制台頁面連結> &SigninToken=<擷取到的登入Token>
執行結果
登入自建Web應用後,可見嵌入的Managed Service for OpenTelemetry控制台頁面效果如下圖所示:
操作範例
本教程的範例程式碼基於Java SDK,以嵌入Managed Service for OpenTelemetry控制台的應用列表為例。