云服务器内容精选

  • 响应参数 属性名 类型 属性说明 error_msg String 返回信息【失败时,会记录失败原因】 error_code String 返回码 session_token String 刷新后的新session_token 响应示例 正确示例 { "session_token": "*****" } 错误示例 { "error_msg": "The system is busy. Please try again later.", "error_code": " OneAccess .1009" }
  • 请求参数(post Body) 参数名 类型 中文名称 是否必须 示例值 session_token String 旧session_token 是 ***** operating_sys_version String 调用方操作系统版本 是 windows10.1.1 device_ip String 调用方设备ip 是 192.168.1.1 device_fingerprint String 调用方设备指纹 是 ***** agent String User-Agent信息 否 agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36 请求示例 POST https://bc.bccastle.com/api/v2/tenant/sso/session-token/refresh { "session_token":"*****", "operating_sys_version":"windows10.1.1", "device_ip":"192.168.1.1", "device_fingerprint":"*****", "agent":"agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36" }
  • 请求示例 通登录成功后响应得到值为iJK******ITu的session_token获取sso_ticket。 POST https://{domain_name}/api/v2/tenant/sso/session-token/sso-ticket Authorization: Bearer 334963fc-1e4a-473b-9096-52a929140... X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "session_token": "iJK******ITu", "operating_sys_version": "Android 10", "device_ip": "10.10.10.1", "device_fingerprint": "156aysdna213sac", "agent": "Mozilla/5.0 (Linux; Android 10; Redmi K30 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36", "client_id": "9fIHl3Dc9ivToWLVtblrF6Sjv9Fx47JJ" }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 Authorization 是 String 认证凭据,值:Bearer {access_token},access_token通过“获取访问凭据”接口获取。 X-tenant-id 否 String 租户外部ID,如果为ISV方调用则为必填,需要将{domain_name}换成ISV通用域名{common_domain},请求Header参数中需要指定对应租户的tenant_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 session_token 是 String 登录成功返回的会话token。 operating_sys_version 是 String 调用方操作系统版本,例如: Android 10。 device_ip 是 String 调用方设备ip,例如:10.10.10.1。 device_fingerprint 是 String 调用方设备指纹,同一个用户调用接口时该参数的值需和登录接口中的值保持统一,例如:156aysdna213sc50。 agent 否 String 调用方User-Agent信息,例如:Mozilla/5.0 (Linux; Android 10; Redmi K30 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/80.0.3987.99 Mobile Safari/537.36。 client_id 否 String 应用授权ID,获取用户信息时如果想获取的是单点应用的用户信息,则需要传入单点应用的client_id。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 expire Integer 过期时间,单位秒。 sso_ticket String 一次性票据,通过用户登录后的session_token获取一次性访问票据sso_ticket,通过sso_ticket可以获取用户信息。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误详情。
  • 企业管理系统与华为云联邦身份认证交互流程 图5为用户在发起单点登录请求后,企业管理系统与华为云间的交互流程。 图5 联邦身份认证交互流程 为方便您查看交互的请求及断言消息,建议您使用Chrome浏览器并安装插件“SAML Message Decoder”。 从图5中可知,联邦身份认证的步骤为: 用户在浏览器中打开创建身份提供商后生成的登录链接,浏览器向华为云发起单点登录请求。 华为云根据登录链接中携带的信息,查找 IAM 身份提供商中对应的Metadata文件,构建SAML Request,发送给浏览器。 浏览器收到请求后,转发SAML Request给企业IdP。 用户在企业IdP推送的登录页面中输入用户名和密码,企业IdP对用户提供的身份信息进行验证,并构建携带用户信息的SAML断言,向浏览器发送SAML Response。 浏览器响应后转发SAML Response给华为云。 华为云从SAML Response中取出断言,并根据已配置的身份转换规则映射到具体的IAM用户组,颁发Token。 用户完成单点登录,访问华为云。 断言中要携带签名,否则会导致登录失败。
  • 联邦身份认证的配置步骤 建立企业管理系统与华为云的联邦身份认证关系,配置流程如下。 图1 基于SAML的IAM用户SSO配置流程 创建身份提供商并建立互信关系:华为云与企业IdP建立联邦认证,需要华为云平台创建一个与企业IdP对应的身份提供商程序。然后,建立联邦认证的双方需首先建立互信关系,双方交换元数据文件,在企业IdP中上传华为云元数据文件,在华为云上传企业IdP的元数据文件。 图2 交换Metadata文件模型 配置企业IdP:配置企业IdP参数,规定在交互过程中,企业IdP向华为云发送哪些信息。 配置外部身份ID:配置外部身份ID,建立IAM用户与企业IdP用户的对应关系,当企业IdP用户使用IAM用户SSO时,会以指定外部身份ID的IAM用户身份登录华为云。例如,企业用户"IdP_Test_User"的ID值与IAM用户“Alice”的外部身份ID一致,则IdP_Test_User会以Alice的身份登录IAM。 图3 用户转换模型 登录验证:发起单点登录,测试是否能成功从企业IdP跳转登录华为云。 (可选)配置企业管理系统登录入口:将华为云的访问入口配置到企业管理系统中,用户可通过登录企业管理系统直接访问华为云,如图4所示。 图4 配置单点登录模型
  • 请求参数(post Body) 参数名 类型 中文名称 是否必须 示例值 session_token String 旧session_token 是 ***** operating_sys_version String 调用方操作系统版本 是 windows10.1.1 device_ip String 调用方设备ip 是 192.168.1.1 device_fingerprint String 调用方设备指纹 是 ***** agent String User-Agent信息 否 agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36 请求示例 POST https://bc.bccastle.com/api/v2/tenant/sso/session-token/refresh{"session_token":"*****","operating_sys_version":"windows10.1.1","device_ip":"192.168.1.1","device_fingerprint":"*****","agent":"agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"}
  • 响应参数 属性名 类型 属性说明 error_msg String 返回信息【失败时,会记录失败原因】 error_code String 返回码 session_token String 刷新后的新session_token 响应示例 正确示例 {"session_token": "*****"} 错误示例 {"error_msg": "The system is busy. Please try again later.","error_code": "OneAccess.1009"}