如需在自建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控制台。
在左側導覽列,選擇 。
在使用者頁面,單擊建立使用者。
在建立使用者頁面的使用者帳號資訊地區框中,輸入登入名稱稱和顯示名稱。在訪問方式地區框中,勾選Open API調用訪問,並單擊確定。
重要RAM會自動為RAM使用者建立AccessKey(API存取金鑰)。出於安全考慮,RAM控制台只提供一次查看或下載AccessKeySecret的機會,即建立AccessKey時,請務必將AccessKeySecret記錄到安全的地方。
在使用者頁面,單擊目標RAM使用者操作列的添加許可權。
您也可以選中多個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控制台的應用列表為例。