云服务器内容精选

  • 集成步骤 轻量级WEB聊天控件可以快速高效的集成到您的页面,请您根据图1进行集成开发。 图1 集成开发步骤 完成开发前资源准备,获取登录信息,配置在线客服功能,请参见开发前准备。 开发token生成机制与token认证接口,提供给云客服。云客服在鉴权通过后,会将Token发回给第三方系统,由第三方系统确认是否为本系统发的请求,请参见开发token生成机制与认证验证接口。 华为方使用HTTPS传输协议确保信息传输通道安全,请第三方确保开发的鉴权功能具备“口令复杂度校验”、“防暴力破解”、“防DOS攻击”等安全防护能力。 引入相关依赖框架,构造请求参数请求thirdPartyClient.js和newThirdPartyClient.js ,将Token信息、租户ID、企业侧的用户ID、用户名称等信息返回云客服,请求鉴权,鉴权通过后可实现云客服网页聊天能力的轻量级接入,请参见开发集成页面。 测试与验证WEB聊天控件功能,通过客户端窗口发起在线聊天检查与座席聊天功能,请参见测试与验证。 父主题: 集成轻量级WEB聊天控件(引入Token认证方式)
  • 请求参数 表2 请求Body参数 参数 是否必选 参数类型 描述 ak 是 String 用户认证AK。 支持大小写字母,数字,特殊字符(-_),长度范围[1,64],获取方式参考获取user ID与下载AK/SK章节。 sk 是 String 用户认证SK。 支持大小写字母,数字,特殊字符(-_),长度范围[1,64],获取方式参考获取user ID与下载AK/SK章节。 force_update 否 boolean 强制更新标识符。 AK当前仅持有 一个AccessToken 且剩余有效期小于等于两天时,可通过此参数获取新的 AccessToken 使用;其他场景传此参数不解析。
  • 请求和Policy示例 下面的几张表提供了一些请求和Policy的例子。 示例1:在examplebucket桶中上传testfile.txt对象,并且设置对象ACL为公共可读。 请求 policy POST / HTTP/1.1 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Content-Type: multipart/form-data; boundary=7e32233530b26 Content-Length: 1250 --7e32233530b26 Content-Disposition: form-data; name="key" testfile.txt --7e32233530b26 Content-Disposition: form-data; name="x-obs-acl" public-read --7e32233530b26 Content-Disposition: form-data; name="content-type" text/plain --7e32233530b26 Content-Disposition: form-data; name="AccessKeyId" UDSIAMSTUBTEST000002 --7e32233530b26 Content-Disposition: form-data; name="policy" ewogICJleHBpcmF0aW9uIjogIjIwMTktMDctMDFUMTI6MDA6MDAuMDAwWiIsCiAgImNvbmRpdGlvbnMiOiBbCiAgICB7ImJ1Y2tldCI6ICJleGFtcGxlYnVja2V0IiB9LAogICAgWyJlcSIsICIka2V5IiwgInRlc3RmaWxlLnR4dCJdLAoJeyJ4LW9icy1hY2wiOiAicHVibGljLXJlYWQiIH0sCiAgICBbImVxIiwgIiRDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiJdLAogICAgWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsIDYsIDEwXQogIF0KfQo= --7e32233530b26 Content-Disposition: form-data; name="signature" xxl7bZs/5FgtBUggOdQ88DPZUo0= --7e32233530b26 Content-Disposition: form-data; name="file"; filename="E:\TEST_FILE\TEST.txt" Content-Type: text/plain 123456 --7e32233530b26 Content-Disposition: form-data; name="submit" Upload --7e32233530b26-- { "expiration": "2019-07-01T12:00:00.000Z", "conditions": [ {"bucket": "examplebucket" }, ["eq", "$key", "testfile.txt"], {"x-obs-acl": "public-read" }, ["eq", "$Content-Type", "text/plain"] ] } 示例2:在examplebucket桶中上传file/obj1对象,并且设置对象的四个自定义元数据。 请求 policy POST / HTTP/1.1 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Content-Type: multipart/form-data; boundary=7e329d630b26 Content-Length: 1597 --7e3542930b26 Content-Disposition: form-data; name="key" file/obj1 --7e3542930b26 Content-Disposition: form-data; name="AccessKeyId" UDSIAMSTUBTEST000002 --7e3542930b26 Content-Disposition: form-data; name="policy" ewogICJleHBpcmF0aW9uIjogIjIwMTktMDctMDFUMTI6MDA6MDAuMDAwWiIsCiAgImNvbmRpdGlvbnMiOiBbCiAgICB7ImJ1Y2tldCI6ICJleGFtcGxlYnVja2V0IiB9LAogICAgWyJzdGFydHMtd2l0aCIsICIka2V5IiwgImZpbGUvIl0sCiAgICB7Ingtb2JzLW1ldGEtdGVzdDEiOiJ2YWx1ZTEifSwKICAgIFsiZXEiLCAiJHgtb2JzLW1ldGEtdGVzdDIiLCAidmFsdWUyIl0sCiAgICBbInN0YXJ0cy13aXRoIiwgIiR4LW9icy1tZXRhLXRlc3QzIiwgImRvYyJdLAogICAgWyJzdGFydHMtd2l0aCIsICIkeC1vYnMtbWV0YS10ZXN0NCIsICIiXQogIF0KfQo= --7e3542930b26 Content-Disposition: form-data; name="signature" HTId8hcaisn6FfdWKqSJP9RN4Oo= --7e3542930b26 Content-Disposition: form-data; name="x-obs-meta-test1" value1 --7e3542930b26 Content-Disposition: form-data; name="x-obs-meta-test2" value2 --7e3542930b26 Content-Disposition: form-data; name="x-obs-meta-test3" doc123 --7e3542930b26 Content-Disposition: form-data; name="x-obs-meta-test4" my --7e3542930b26 Content-Disposition: form-data; name="file"; filename="E:\TEST_FILE\TEST.txt" Content-Type: text/plain 123456 --7e3542930b26 Content-Disposition: form-data; name="submit" Upload --7e3542930b26-- { "expiration": "2019-07-01T12:00:00.000Z", "conditions": [ {"bucket": "examplebucket" }, ["starts-with", "$key", "file/"], {"x-obs-meta-test1":"value1"}, ["eq", "$x-obs-meta-test2", "value2"], ["starts-with", "$x-obs-meta-test3", "doc"], ["starts-with", "$x-obs-meta-test4", ""] ] }
  • Conditions Conditions是一个用于验证本次请求合法的一种机制,可以使用这些条件限制请求中必须包含的内容。实例中的条件要求请求的桶名必须是book,对象名必须以user/为前缀,对象的acl必须是公共可读。除了AccessKeyId、signature、file、policy、token、field names以及前缀为x-ignore-外的表单中的所有项,都需要包含在policy中。下表是conditions中应该包含的项: 表1 policy中应该包含的条件元素 元素名称 描述 x-obs-acl 请求中的ACL。 支持精确匹配和starts-with条件匹配。 content-length-range 设置上传对象的最大最小长度,支持range匹配。 Cache-Control, Content-Type, Content-Disposition, Content-Encoding, Expires REST请求特定头域。 支持精确匹配和starts-with条件匹配。 key 上传对象的名字。 支持精确匹配和starts-with条件匹配。 bucket 请求桶名。 支持精确匹配。 success_action_redirect 上传对象成功后重定向的URL地址。具体描述请参见5.4.2-POST上传。 支持精确匹配和starts-with条件匹配。 success_action_status 如果未指定success_action_redirect,则成功上传时返回给客户端的状态码。具体描述请参见5.4.2-POST上传。 支持精确匹配。 x-obs-meta-* 用户自定义元数据。 元素中的关键字不允许含有非ASCII码或不可识别字符,如果一定要使用非ASCII码或不可识别字符,需要客户端自行做编解码处理,可以采用URL编码或者Base64编码,服务端不会做解码处理。 支持精确匹配和starts-with条件匹配。 x-obs-* 其他以x-obs-为前缀的头域。 支持精确匹配和starts-with条件匹配。 x-obs-security-token 请求消息头中字段名。 临时AK/SK和securitytoken鉴权必加字段名。 Policy条件匹配的方式如下: 表2 policy条件匹配方式 条件 描述 Exact Matches 默认是完全匹配,post表单中该项的值必须和policy的conditions中设置的值完全一样。例如:上传对象的同时设置对象ACL为public-read,表单中x-obs-acl元素的值为public-read,policy中的conditions可以设置为 {"x-obs-acl": "public-read" }或者[ "eq", "$x-obs-acl", "public-read"],这两者是等效的。 Starts With 如果使用该条件,则post表单中对应元素的值必须是固定字符串开始。例如:上传对象名以user/为前缀,表单中key元素的值可以是user/test1、user/test2,policy的conditions中该条件如下: ["starts-with", "$key", "user/"] Matching Any Content post表单中对应元素的值可以是任意值。例如:请求成功后重定向的地址可以是任意地址,表单中success_action_redirect元素的值可以是任意值,policy的conditions中该条件如下: ["starts-with", "$success_action_redirect", ""] Specifying Ranges post表单中file元素文件的内容长度可以是一个指定的范围,只用于限制对象大小。例如上传对象大小为1-10MB,表单中file元素的内容长度可以是1048576-10485760,policy的conditions中该条件如下,注意值没有双引号: ["content-length-range", 1048576, 10485760] policy使用json格式,conditions可以支持 { } 和 [ ] 两种方式,{ }中包含表单元素的key和value两项,以冒号分隔;[ ]中包含条件类型、key、value三项,以逗号分隔,元素key之前使用$字符表示变量。 Policy中必须转义的字符如下: 表3 policy中必须转义的字符 转义后的字符 真实字符 \\ 反斜杠(\) \$ 美元符号($) \b 退格 \f 换页 \n 换行 \r 回车 \t 水平制表 \v 垂直制表 \uxxxx 所有Unicode字符
  • 用户角色介绍 解决方案工作台角色 解决方案工作台角色,分为企业管理员和普通用户。 企业管理员:企业管理员拥有运营中心的相关权限,可以在运营中心管理本企业的用户,还可以进行本企业报表的查看、自定义验证效率分析等运营管理操作。 普通用户:包含项目经理、架构师、测试工程师,用于标记该人员的能力模型。 解决方案工作台空间角色 解决方案工作台空间角色,指解决方案工作台用户在具体的某个解决方案工作台空间内的角色,空间之间相互隔离,某个空间内的角色不影响其他空间。 管理员:空间管理员,可以对本空间内的成员进行管理。 项目经理:管理空间、空间成员、测试计划制定、方案/需求/用例/报告审核等。 架构师:在解决方案工作台上进行解决方案注册、设计与审核,测试需求创建,测试问题处理等。 测试工程师:测试用例设计、执行,测试资源开通,测试问题处理,测试报告生成等。 访客:在邀请用户进入空间时可设置该用户为访客角色,访客角色用户在该空间内仅支持查看,不允许任何编辑操作。 更多关于解决方案工作台的角色介绍请参考用户访问权限,您可以参考设置本企业企业管理员添加用户、为用户设置角色。
  • 认证测试工作计划参考 为了保证认证测试高效快速完成,请提前安排研发人力投入,支持测试和问题修复。请在认证测试开始前理解测试流程并制定合理的计划,以下测试工作计划仅供参考。 表5 华为云软件认证测试工作计划参考 测试阶段 工作内容 计划开始时间* 计划结束时间* 测试责任人* 参考工作量(人天) 说明 准备阶段 注册、设计方案、创建测试需求、制定测试计划 示例:2023-9-1 示例:2023-9-1 XXX 1 1.部署架构设计需满足认证测试可靠性要求。 2.测试资源选择满足测试需求的最小规格。 设计测试用例 示例:2023-9-4 示例:2023-9-5 XXX 2 创建需求时,使用“向导式需求与用例生成”功能,自动生成用例。 购买华为云资源并自行部署测试环境 示例:2023-9-6 示例:2023-9-7 XXX 2 按设计好的方案购买华为云资源并自行部署测试环境 执行阶段 安全测试 二进制包扫描(不依赖部署环境) 示例:2023-9-8 示例:2023-9-8 XXX 0.5 不同类型测试可并行执行。 安全漏洞修复时间较长,请优先执行安全工具扫描(二进制、WEB、主机扫描)并将报告中的安全漏洞及时反馈开发人员进行修复。 如商品已通过华为云其他类型测试,请提供相关测试材料,与认证测试团队对齐后评估复用测试结论。 WEB扫描 XXX 主机扫描 XXX 门槛手工用例 示例:2023-9-11 示例:2023-9-12 XXX 2 可靠性测试(门槛用例) 示例:2023-9-13 示例:2023-9-13 XXX 1 性能测试 示例:2023-9-14 示例:2023-9-14 XXX 1 功能测试 功能点测试 示例:2023-9-8 示例:2023-9-14 XXX 50个用例/人天,根据产品实际情况评估。 服务控制测试 示例:2023-9-8 示例:2023-9-14 XXX 可维护性测试 示例:2023-9-8 示例:2023-9-14 XXX 集成测试 示例:2023-9-8 示例:2023-9-14 XXX 问题闭环 问题清单闭环 示例:2023-9-8 示例:2023-9-14 XXX / 根据测试发现问题数量及难度,据实评估。 测试过程中发现的问题,及时反馈开发工程师进行修复。
  • 华为云认证测试内容与要求 本文档包含联营商品、伙伴lead、先进云软件三种认证测试场景,测试内容包含功能测试、性能测试、安全测试、可靠性测试、集成测试,认证测试总体要求见下表。在执行测试用例过程中,如有执行结果不满足测试要求的情况,需要进行相关功能开发或整改。 表1 认证测试要求总体说明 测试项 测试要求 功能测试 业务功能测试 1)测试用例必须与功能清单对应,要求100%覆盖2级功能下的核心按钮。对于伙伴Lead解决方案,需100%覆盖特性清单。 2)测试用例需要有详细的操作步骤说明。 3)测试用例需要有主场景的端到端场景测试用例。 4)如涉及硬件商品,需要伙伴自行提供硬件产品作为独立设备的产品说明书及质量检测报告(第三方或自测报告),功能测试报告(如有需提供)。 服务控制性测试 1)License 快到期提醒。 2)License 严重过期,系统不可用。 3)License 续费,系统可正常使用,原数据不删除。 可维护性测试 1)集中事件管理平台检查。 2)统一日志管理系统检查。 3)监控告警管理机制检查。 4)证书过期告警功能检查。 性能测试 1)选取3-5个基本核心功能点,根据当前使用的资源规格确定压力负载(如100并发用户),进行持续并发测试(5-10分钟)。 2)选取2-4个系统核心的混合业务场景,进行持续并发测试(0.5-2小时)。 3)选一个场景做疲劳压测(持续4-6小时)。 4)如涉及硬件商品,则选取3-4个硬件业务场景进行0.5-2小时的持续并发测试,体现硬件商品性能指标,如:摄像头硬件商品体现摄像头视频流的分辨率、支持视频接入并发路数等。 安全测试 手工安全测试用例 1)执行34条手工安全测试用例。 2)API商品使用token或者动态签名方式认证,手工用例中的会话、密码相关用例不涉及。 WEB 扫描 1)基于解决方案工作台,完成安全自动化扫描用例(安全自动化用例可通过“验证中心”使用用例模板或“向导式需求与用例生成”功能创建)。 2)修复要求请参考扫描结果与修复建议。 主机扫描 二进制扫描 可靠性测试 1)根据可靠性要求表(SaaS可靠性要求、License可靠性要求),部署高可用测试环境(数据高可用、应用高可用、安全服务)及数据备份。 2)根据可靠性要求表设计可靠性验证用例,需要测试各故障点的服务。 3)API商品对应的后端服务可靠性要求跟SaaS的可靠性要求保持一致。 集成测试 1)结合方案架构图,对方案中涉及到的华为云服务进行集成路径的连通性测试,确保核心业务场景中的业务流、数据流与所依赖的华为云服务能够端到端打通。 覆盖所有涉及到的云服务及集成路径。 2)如涉及硬件商品,需选取3-6个解决方案核心业务场景,进行业务流、数据流的连通性测试。 认证测试包含的功能测试、性能测试、安全测试、可靠性测试、集成测试已上架用例模板,请根据产品实际选择并编辑后使用,使用操作请参见设计测试用例文档。 涉及硬件商品,只需关注上表的功能测试、性能测试、集成测试硬件商品相关要求。 认证测试基于“解决方案工作台”操作完成,点击解决方案工作台访问链接访问,建议使用Chrome浏览器访问。解决方案工作台是一个支撑伙伴快速进行解决方案构建和验证的自助化工具平台,更多关于解决方案工作台的介绍参考什么是解决方案工作台。
  • 身份认证 用户访问云数据库 GaussDB时支持对数据库用户进行身份验证,包含密码验证和IAM验证两种方式。 密码验证 您需要对数据库实例进行管理,使用数据管理服务(Data Admin Service)登录数据库时,需要对账号密码进行验证,验证成功后方可进行操作。 IAM验证 您可以使用统一身份认证服务(Identity and Access Management, IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制华为云资源的访问。您创建的IAM用户,需要通过验证用户和密码才可以使用GaussDB资源。具体请参见创建IAM用户并登录。
  • 访问控制 权限控制 购买实例之后,您可以使用IAM为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,通过IAM进行精细的权限管理。具体内容请参见权限管理。 VPC和子网 虚拟私有云(Virtual Private Cloud, VPC)为云数据库构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云上资源的安全性,简化用户的网络部署。您可以在VPC中定义安全组、VPN、IP地址段、带宽等网络特性,方便管理、配置内部网络,进行安全、快捷的网络变更。 子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性。 具体内容请参见创建虚拟私有云和子网。 安全组 安全组是一个逻辑上的分组,为同一个虚拟私有云内具有相同安全保护需求并相互信任的和GaussDB数据库实例提供访问策略。为了保障数据库的安全性和稳定性,在使用GaussDB数据库实例之前,您需要设置安全组,开通需访问数据库的IP地址和端口。 具体请参见设置安全组规则。
  • 响应示例 状态码为 200 时: 请求成功。 { "role": { "domain_id": "d78cbac186b744899480f25bd02...", "references": 0, "description_cn": "中文描述", "catalog": "CUSTOMED", "name": "custom_d78cbac186b744899480f25bd022f468_11", "description": "IAMDescription", "links": { "self": "https://iam.myhuaweicloud.com/v3/roles/a24a71dcc41f4da989c2a1c900b52d1a" }, "id": "a24a71dcc41f4da989c2a1c900b52d1a", "display_name": "IAMCloudServicePolicy", "type": "AX", "policy": { "Version": "1.1", "Statement": [ { "Condition": { "StringStartWith": { "g:ProjectName": [ "cn-north-1" ] } }, "Action": [ "obs:bucket:GetBucketAcl" ], "Resource": [ "obs:*:*:bucket:*" ], "Effect": "Allow" } ] } } }
  • 响应示例 状态码为 200 时: 请求成功。 { "mappings": [ { "rules": [ { "local": [ { "user": { "name": "LocalUser" } }, { "group": { "name": "LocalGroup" } } ], "remote": [ { "type": "UserName" }, { "type": "orgPersonType", "not_any_of": [ "Contractor", "Guest" ] } ] } ], "id": "ACME", "links": { "self": "https://iam.myhuaweicloud.com/v3/OS-FEDERATION/mappings/ACME" } } ], "links": { "self": "https://iam.myhuaweicloud.com/v3/OS-FEDERATION/mappings", "previous": null, "next": null } }
  • 响应参数 表10 响应Body参数 参数 参数类型 描述 mapping Object 映射信息。 表11 mapping 参数 参数类型 描述 id String 映射ID。 links Object 映射的资源链接信息。 rules Array of objects 将联邦用户映射为本地用户的规则列表。 表12 mapping.links 参数 参数类型 描述 self String 资源链接地址。 表13 mappings.rules 参数 参数类型 描述 local Array of objects 表示联邦用户在本系统中的用户信息。 user:联邦用户在本系统中的用户名称。group:联邦用户在本系统中所属用户组。 remote Array of objects 表示联邦用户在IdP中的用户信息。使用SAML协议时,由断言属性及运算符组成的表达式,取值由断言决定。使用OIDC协议时,取值由ID token决定。 表14 mappings.rules.local 参数 参数类型 描述 user user object 联邦用户在本系统中的用户名称 group group object 联邦用户在本系统中所属用户组 表15 mappings.rules.local.user 名称 类型 描述 name string 联邦用户在本系统中的用户名称 表16 mappings.rules.local.group 名称 类型 描述 name string 联邦用户在本系统中所属用户组 表17 mapping.rules.remote 参数 参数类型 描述 type String 表示IdP断言(SAML协议)或ID token(OIDC协议)中的属性。 any_one_of Array of strings 输入属性值中包含指定值才生效,并返回布尔值,返回值不能用于local块中的占位符。在同一个remote数组元素中,any_one_of与not_any_of互斥,两者至多填写一个,不能同时填写。 not_any_of Array of strings 输入属性值中不包含指定值才生效,并返回布尔值,返回值不能用于local块中的占位符。not_any_of 与any_one_of互斥,两者至多填写一个,不能同时填写。
  • 请求示例 注册映射。 PUT https://iam.myhuaweicloud.com/v3/OS-FEDERATION/mappings/{id} { "mapping": { "rules": [ { "local": [ { "user": { "name": "LocalUser" } }, { "group": { "name": "LocalGroup" } } ], "remote": [ { "type": "UserName" }, { "type": "orgPersonType", "not_any_of": [ "Contractor", "Guest" ] } ] } ] } }
  • 响应示例 状态码为 201 时: 创建成功。 { "mapping": { "rules": [ { "local": [ { "user": { "name": "LocalUser" } }, { "group": { "name": "LocalGroup" } } ], "remote": [ { "type": "UserName" }, { "type": "orgPersonType", "not_any_of": [ "Contractor", "Guest" ] } ] } ], "id": "ACME", "links": { "self": "https://iam.myhuaweicloud.com/v3/OS-FEDERATION/mappings/ACME" } } }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-Auth-Token 是 String 访问令牌,承载用户的身份、权限等信息。 token所需权限请参见授权项。 表3 请求Body参数 参数 是否必选 参数类型 描述 mapping 是 Object 映射信息。 表4 mapping 参数 是否必选 参数类型 描述 rules 是 Array of objects 将联邦用户映射为本地用户的规则列表。 表5 mapping.rules 参数 是否必选 参数类型 描述 local 是 Array of RulesLocal objects 表示联邦用户在本系统中的用户信息。 user:联邦用户在本系统中的用户名称。group:联邦用户在本系统中所属用户组。 remote 是 Array of objects 表示联邦用户在IdP中的用户信息。使用SAML协议时,由断言属性及运算符组成的表达式,取值由断言决定。使用OIDC协议时,取值由ID token决定。 表6 mappings.rules.local 参数 是否必选 参数类型 描述 user 否 user object 联邦用户在本系统中的用户名称 group 否 group object 联邦用户在本系统中所属用户组 表7 mappings.rules.local.user 名称 是否必选 类型 描述 name 是 string 联邦用户在本系统中的用户名称 表8 mappings.rules.local.group 名称 是否必选 类型 描述 name 是 string 联邦用户在本系统中所属用户组 表9 mapping.rules.remote 参数 是否必选 参数类型 描述 type 是 String 表示IdP断言(SAML协议)或ID token(OIDC协议)中的属性。 any_one_of 否 Array of strings 输入属性值中包含指定值才生效,并返回布尔值,返回值不能用于local块中的占位符。在同一个remote数中,any_one_of与not_any_of互斥,两者至多填写一个,不能同时填写。 not_any_of 否 Array of strings 输入属性值中不包含指定值才生效,并返回布尔值,返回值不能用于local块中的占位符。not_any_of 与any_one_of互斥,两者至多填写一个,不能同时填写。