云服务器内容精选

  • Python示例代码 以下示例说明了如何使用Python编程的方式创建云服务登录地址FederationProxyUrl,该示例基于华为云开发者 Python 软件开发工具包 (Python SDK)开发。 from huaweicloudsdkcore.auth.credentials import GlobalCredentialsfrom huaweicloudsdkcore.http.http_config import HttpConfigfrom huaweicloudsdkiam.v3 import *import urllib# 使用全局 域名 获取自定义代理登录票据endpoint = "https://iam.myhuaweicloud.com"# 配置客户端属性config = HttpConfig.get_default_config()config.ignore_ssl_verification = Trueconfig.proxy_protocol = "https"config.proxy_host = "proxy.huawei.com"config.proxy_port = 8080credentials = GlobalCredentials(ak, sk, domain_id)# 使用 IAM userB的domainID/ak/sk,初始化指定IAM客户端 {Service}Client,用户B的创建方式见“创建IAM用户”章节client = IamClient().new_builder(IamClient) \.with_http_config(config) \.with_credentials(credentials) \.with_endpoint(endpoint) \.build()# CreateTemporaryAccessKeyByToken# 调用通过token获取临时访问密钥和securitytoken接口获取具有临时身份的访问密钥和securityToken# 访问密钥和securitytoken的默认有效期为900秒,即15分钟,取值范围为15分钟-24小时,这里设置有效期为3600秒,即一小时。# 注意: 下一步获取自定义代理登录票据logintoken时,如果您设置了有效期,则有效期不能大于这里获取的securitytoken的剩余有效时间。identity_methods = ["token"]identity_token = IdentityToken(duration_seconds=3600)body = CreateTemporaryAccessKeyByTokenRequestBody(TokenAuth(TokenAuthIdentity(methods=identity_methods, token=identity_token)))request = CreateTemporaryAccessKeyByTokenRequest(body)create_temporary_access_key_by_token_response = client.create_temporary_access_key_by_token(request)credential = create_temporary_access_key_by_token_response.credential# CreateLoginToken# 获取自定义代理登录票据logintoken。# logintoken是系统颁发给自定义代理用户的登录票据,承载用户的身份、session等信息。# 调用自定义代理URL登录云服务控制台时,可以使用本接口获取的logintoken进行认证。# 自定义代理登录票据logintoken的有效期默认为600秒,即10分钟,取值范围为10分钟-12小时,这里设置为1800秒,即半小时。# 注意:自定义代理登录票据logintoken的有效期不能大于上一步获取的securitytoken的剩余有效时间。login_token_security_token = LoginTokenSecurityToken(access=credential.access, secret=credential.secret,id=credential.securitytoken, duration_seconds=1800)body = CreateLoginTokenRequestBody(LoginTokenAuth(login_token_security_token))request = CreateLoginTokenRequest(body)create_login_token_response = client.create_login_token(request)login_token = create_login_token_response.x_subject_login_token#自定义代理登录地址auth_URL = "https://auth.huaweicloud.com/authui/federation/login"#企业管理系统登录地址enterprise_system_login_URL = "https://example.com/"#需要访问的华为云服务地址target_console_URL = "https://console.huaweicloud.com/iam/?region=cn-north-4"# 创建云服务登录地址FederationProxyUrl,作为Location返回给浏览器。FederationProxyUrl = auth_URL + "?idp_login_url=" + urllib.parse.quote(enterprise_system_login_URL) + "&service=" + urllib.parse.quote(target_console_URL) + "&logintoken=" + urllib.parse.quote(login_token)print(FederationProxyUrl)
  • Java示例代码 以下示例说明了如何使用java编程的方式创建云服务登录地址FederationProxyUrl,该示例基于华为云 Java 软件开发工具包(Java SDK)开发。 import java.net.URLEncoder;import java.util.Collections;import com.huaweicloud.sdk.core.auth.GlobalCredentials;import com.huaweicloud.sdk.core.http.HttpConfig;import com.huaweicloud.sdk.core.exception.*;import com.huaweicloud.sdk.iam.v3.IamClient;import com.huaweicloud.sdk.iam.v3.model.*;//使用全局域名获取自定义代理登录票据String endpoint = "https://iam.myhuaweicloud.com";//配置客户端属性HttpConfig config = HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true).withProxyHost("proxy.huawei.com").withProxyPort(8080);// 使用IAM userB的domainID/ak/sk,初始化指定IAM客户端 {Service}Client,用户B的创建方式见“创建IAM用户”章节IamClient iamClient = IamClient.newBuilder().withCredential(new GlobalCredentials().withDomainId(domainId).withAk(ak).withSk(sk)).withEndpoint(endpoint).withHttpConfig(config).build();/*CreateTemporaryAccessKeyByToken调用通过token获取临时访问密钥和securitytoken接口获取具有临时身份的访问密钥和securitytoken。访问密钥和securitytoken的默认有效期为900秒,即15分钟,取值范围为15分钟-24小时,这里设置有效期为3600秒,即一小时。注意: 下一步获取自定义代理登录票据logintoken时,如果您设置了有效期,则有效期不能大于这里获取的securitytoken的剩余有效时间。*/TokenAuthIdentity tokenAuthIdentity = new TokenAuthIdentity().withMethods(Collections.singletonList(TokenAuthIdentity.MethodsEnum.fromValue("token"))).withToken(new IdentityToken().withDurationSeconds(3600));CreateTemporaryAccessKeyByTokenRequestBody createTemporaryAccessKeyByTokenRequestBody = new CreateTemporaryAccessKeyByTokenRequestBody().withAuth(new TokenAuth().withIdentity(tokenAuthIdentity));CreateTemporaryAccessKeyByTokenResponse createTemporaryAccessKeyByTokenResponse = iamClient.createTemporaryAccessKeyByToken(new CreateTemporaryAccessKeyByTokenRequest().withBody(createTemporaryAccessKeyByTokenRequestBody));Credential credential = createTemporaryAccessKeyByTokenResponse.getCredential();/*CreateLoginToken获取自定义代理登录票据logintoken。logintoken是系统颁发给自定义代理用户的登录票据,承载用户的身份、session等信息。调用自定义代理URL登录云服务控制台时,可以使用本接口获取的logintoken进行认证。自定义代理登录票据logintoken的有效期默认为600秒,即10分钟,取值范围为10分钟-12小时,这里设置为1800秒,即半小时。注意:自定义代理登录票据logintoken的有效期不能大于上一步获取的securitytoken的剩余有效时间。*/CreateLoginTokenRequestBody createLoginTokenRequestBody = new CreateLoginTokenRequestBody().withAuth(new LoginTokenAuth().withSecuritytoken(new LoginTokenSecurityToken().withAccess(credential.getAccess()).withId(credential.getSecuritytoken()).withSecret(credential.getSecret()).withDurationSeconds(1800)));CreateLoginTokenResponse createLoginTokenResponse = iamClient.createLoginToken(new CreateLoginTokenRequest().withBody(createLoginTokenRequestBody));String loginToken = createLoginTokenResponse.getXSubjectLoginToken();//获取自定义代理登录票据URLString authURL = "https://auth.huaweicloud.com/authui/federation/login";//企业管理系统登录地址String enterpriseSystemLoginURL = "https://example.com/";//需要访问的华为云服务地址String targetConsoleURL = "https://console.huaweicloud.com/iam/?region=cn-north-4";//创建云服务登录地址FederationProxyUrl,作为Location返回给浏览器。String FederationProxyUrl = authURL + "?idp_login_url=" +URLEncoder.encode(enterpriseSystemLoginURL, "UTF-8") +"&service=" + URLEncoder.encode(targetConsoleURL, "UTF-8") +"&logintoken=" +URLEncoder.encode(loginToken, "UTF-8");