日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

控制臺內嵌及分享

日志服務支持將查詢分析頁面和儀表盤頁面嵌入自建Web應用,方便您將查詢分析和儀表盤頁面免密共享給其他用戶。

基本原理

重要

免密分享推薦使用Ticket方案,具體操作請參見控制臺內嵌及分享(新版)

登錄服務signin.aliyun.com支持通過在URL中拼接登錄Token,當用戶訪問免登錄鏈接時,首先會訪問登錄服務,登錄服務檢測到有效的登錄Token后,會重定向到目標頁面,實現控制臺頁面的免密訪問。整體的流程如下。

訪問流程

  1. 用戶訪問您的Web服務。

  2. Web服務端使用RAM用戶的AK訪問令牌服務(STS)獲取安全令牌(STS Token)。

  3. 令牌服務(STS)返回安全令牌(STS Token)。

  4. Web服務端使用安全令牌訪問RAM的登錄服務SSO,獲取登錄Token。

  5. 登錄服務返回登錄Token。

  6. Web服務端拼接免登錄鏈接,返回給客戶端,客戶端根據拼接的免登錄鏈接訪問日志服務頁面。

注意事項

在使用控制臺分享功能的過程中,請注意以下事項:

  • 該功能僅支持通過扮演RAM角色身份進行訪問。

  • 由于令牌服務(STS)生成的登錄Token為臨時憑證,所以共享鏈接僅支持在瀏覽器中打開一次;重復打開該鏈接會提示SigninToken錯誤。

  • 由于后端存在校驗邏輯,建議您在SigninToken失效期前5分鐘重新生成控制臺分享鏈接以持續使用免登的頁面。否則SigninToken失效將導致免登錄頁面上報SigninToken錯誤。

  • 當前僅支持完整查詢和分析頁面、查詢頁面、儀表盤頁面進行控制臺分享,不支持告警頁面分享。

操作流程

準備分享鏈接

  1. 準備好待分享的查詢分析頁面或者儀表盤鏈接。

    說明

    當前僅支持完整查詢和分析頁面、查詢頁面、儀表盤頁面進行控制臺分享,不支持告警頁面分享。

    • 完整查詢分析頁面:

      https://sls.console.aliyun.com/lognext/project/<Project名稱>/logsearch/<日志庫名稱>?slsRegion=<Project所在地域>&hideTopbar=true&hideSidebar=true&ignoreTabLocalStorage=true
    • 查詢頁面:

      https://sls.console.aliyun.com/lognext/project/<Project名稱>/logsearch/<日志庫名稱>?slsRegion=<Project所在地域>&isShare=true&hideTopbar=true&hideSidebar=true&ignoreTabLocalStorage=true
    • 儀表盤頁面:

      https://sls.console.aliyun.com/lognext/project/<Project名稱>/dashboard/<儀表盤ID>?slsRegion=<Project所在地域>&isShare=true&hideTopbar=true&hideSidebar=true&ignoreTabLocalStorage=true
      說明

      上述鏈接中儀表盤ID為網頁鏈接上的ID,并非儀表盤的展示名稱。

    • 全棧可觀測應用頁面

      此處以Trace分析頁面為例。更多信息,請參見全棧可觀測內嵌

      https://sls4service.console.aliyun.com/lognext/app/observability/trace/<Project名稱>/<全棧可觀測實例id>?resource=/trace/<全棧可觀測實例id>/explorer&hideTopbar=true&isShare=true
  2. 替換分享鏈接的Host為sls4service.console.aliyun.com

    例如,您待分享的儀表盤控制臺鏈接如下:

    https://sls.console.aliyun.com/lognext/project/project_name/dashboard/dashboard-1651116703628-54041

    替換Hostsls.console.aliyun.comsls4service.console.aliyun.com,則待分享鏈接頁面地址為:

    https://sls4service.console.aliyun.com/lognext/project/project_name/dashboard/dashboard-1651116703628-54041

創建RAM用戶&RAM角色

創建RAM用戶,并授予扮演RAM角色的權限,然后創建一個RAM角色,并授予訪問儀表盤等待分享頁面的查看權限。

創建RAM用戶

  1. 創建RAM用戶的操作步驟請參見創建RAM用戶及授權,創建時勾選通過OpenAPI 調用訪問選項,創建完成后記錄下AccessKey。

  2. 給RAM用戶授予扮演角色的權限。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "sts:AssumeRole",
                "Resource": "*"
            }
        ]
    }

創建RAM角色

  1. 創建一個允許當前云賬號的RAM用戶或RAM角色扮演的RAM角色,詳細操作步驟請參見創建可信實體為阿里云賬號的RAM角色及授權

  2. 給RAM角色授權,允許其訪問分享鏈接。如授予SLS的只讀權限。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "log:Get*",
                    "log:List*",
                    "log:Query*"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
  3. 記錄下RAM角色的角色ARN,格式如acs:ram::137******44:role/role-name

獲取免登錄鏈接

制作免登錄日志服務控制臺的鏈接。Java、Python等多種語言的代碼示例請參考代碼示例

  1. 通過使用RAM用戶的AccessKey訪問STS服務換取安全令牌(STS Token),可根據業務的實際需要指定令牌的有效期。獲取STS Token的示例代碼如下。

    DefaultProfile.addEndpoint("", "", "Sts", stsHost);
    IClientProfile profile = DefaultProfile.getProfile("", <AccessKeyId>, <AccessKeySecret>);
    DefaultAcsClient client = new DefaultAcsClient(profile);
    AssumeRoleRequest assumeRoleReq = new AssumeRoleRequest();
    assumeRoleReq.setRoleArn(roleArn); // RAM角色的ARN
    assumeRoleReq.setRoleSessionName(roleSession);
    assumeRoleReq.setMethod(MethodType.POST);
    assumeRoleReq.setDurationSeconds(3600L);
    AssumeRoleResponse assumeRoleRes = client.getAcsResponse(assumeRoleReq);
  2. 調用RAM單點登錄SSO,獲取登錄Token。拼接鏈接的形式如下。注意:TicketType必須指定為mini

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

    返回的結構如下:

    {
        "RequestId": "02b47c77c5fd48789d23773af853e9f7_936be_1706585994094_1.229",
        "SigninToken": "svX6LGcBbWLExKD5hcwdLu6RsLQbv36fWZN36WhxkTXpTcDpmzs2K6X8uFvCqGsBTU4KWJMffYz2rAVbdJXHMECgUfyzS869wh2DBdFEQo3e2fJgZ5YtcMSVnoX7pterS2f7926jFvdBXVFEF54JkUCMrDAutNRv1u7ZReC7v8oQoG5UmjJBbHUyvLTn5UDDvDfNowMVyRskrZRFUKT2qAMZ4Gnc****"
    }
  3. 將返回的登錄Token拼接到準備好的鏈接中,生成免密訪問鏈接。

    http://signin.aliyun.com/federation?Action=Login
                                &LoginUrl=<登錄失效跳轉的地址,一般配置為自建Web配置302跳轉的URL。需要使用encodeURL對LoginUrl進行轉碼。>
                                &Destination=<實際訪問日志服務頁面,支持查詢頁面和儀表盤頁面。如果有參數,則需要使用encodeURL對參數進行轉碼。>
                                &SigninToken=<獲取的登錄Token,需要使用encodeURL對Token進行轉碼。>

以Iframe方式嵌入

以iframe方式將鏈接嵌入到其他Web頁面。

重要

此處測試即為首次在瀏覽器中打開免登錄鏈接,測試完成后,登錄Token會失效,您需要重新生成免登錄鏈接。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>控制臺鏈接分享</title>
</head>
<body>
<iframe width="1280" height="720" src="免登錄訪問鏈接"> </iframe>
</body>
</html>

代碼示例

您可以參考以下PHP、Python、Go代碼示例生成控制臺分享免登錄鏈接。

  • Java 示例代碼

    其中Java代碼的Maven依賴如下。

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-sts</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>aliyun-java-sdk-core</artifactId>
        <version>3.5.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.5</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.68.noneautotype</version>
    </dependency>
  • PHP 示例代碼

  • Python 示例代碼

  • Go 示例代碼

常見問題

  • 問題現象

    iframe嵌套免登錄鏈接時,出現如下報錯:

    Refused to frame 'https://signin.aliyun.com/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self' *.aliyun.com"
  • 問題根因

    iframe存在安全限制,導致無法加載域外網站。

  • 解決方案

    請修改Content-Security-Policy Header。

    您可以通過在CSP指令中添加特定的域名或通配符來允許特定的網站嵌入。例如,可以使用以下CSP指令允許來自aliyun.com*.aliyun.com的網站嵌入:

    Content-Security-Policy: frame-ancestors 'self' aliyun.com *.aliyun.com;

    如果要允許所有網站嵌入,可以使用通配符*,例如:

    Content-Security-Policy: frame-ancestors *;

    需要注意的是,允許所有網站嵌入可能存在安全風險,因此建議僅在特定情況下使用。更多信息,請參見https://content-security-policy.com/

相關文檔