55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
# coding=utf-8
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import print_function
|
|
|
|
import os
|
|
import json
|
|
import requests
|
|
|
|
from urllib.parse import quote
|
|
from volcengine.sts.StsService import StsService
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# 初始化客户端,推荐通过环境变量动态获取火山引擎密钥等身份认证信息,以免AccessKey硬编码引发数据安全风险。详细说明请参考 https://www.volcengine.com/docs/6470/1166455
|
|
access_key_id = os.environ["VOLCENGINE_ACCESS_KEY_ID"]
|
|
access_key_secret = os.environ["VOLCENGINE_ACCESS_KEY_SECRET"]
|
|
|
|
sts_service = StsService()
|
|
sts_service.set_ak(access_key_id)
|
|
sts_service.set_sk(access_key_secret)
|
|
|
|
role_trn = "trn:iam::yourAccountID:role/yourRole"
|
|
role_session_name = "tlsiframe"
|
|
target_console_url = "https://console.volc-embed.com/tls/region:tls+cn-beijing"
|
|
|
|
# 调用AssumeRole接口获取临时安全令牌
|
|
assume_role_params = {
|
|
"DurationSeconds": "900",
|
|
"RoleSessionName": role_session_name,
|
|
"RoleTrn": role_trn
|
|
}
|
|
assume_role_resp = sts_service.assume_role(assume_role_params)
|
|
|
|
assume_rule_ak = assume_role_resp["Result"]["Credentials"]["AccessKeyId"]
|
|
assume_role_sk = assume_role_resp["Result"]["Credentials"]["SecretAccessKey"]
|
|
session_token = assume_role_resp["Result"]["Credentials"]["SessionToken"]
|
|
|
|
# 获取登录Token
|
|
url_str = "https://console.volc-embed.com/api/passport/login/getSigninTokenWithSTS"
|
|
url_str = url_str + "?accessKeyId=" + quote(assume_rule_ak)
|
|
url_str = url_str + "&secretAccessKey=" + quote(assume_role_sk)
|
|
url_str = url_str + "&sessionToken=" + quote(session_token)
|
|
url_str = url_str + "&sessionDuration=3600"
|
|
|
|
get_signin_token_with_sts_resp = json.loads(requests.post(url_str).content)
|
|
signin_token = get_signin_token_with_sts_resp["Result"]["SigninToken"]
|
|
|
|
# 构建免密访问链接
|
|
result = "https://console.volc-embed.com/api/passport/login/loginWithSigninToken"
|
|
result = result + "?signinToken=" + quote(signin_token)
|
|
result = result + '&redirectURI=' + quote(target_console_url)
|
|
|
|
print(result)
|