华为云用户手册

  • 授权企业联邦账号 提供企业账户授权的启用、停用等操作。通过增加企业账户授权,您可以开放本企业账户的资源的使用权限给其他企业账户下用户。 华为云目前支持以下两种身份提供商类型: IAM 用户SSO:身份提供商中的用户登录华为云后,系统将自动匹配外部身份ID绑定的对应IAM子用户,从而拥有该子用户所在用户组的权限。此类型账号与普通的IAM账号授权相同。 虚拟用户SSO:身份提供商中的用户登录华为云后,系统为其自动创建虚拟用户信息,并按照身份转换规则授权。 两种身份提供商的适用场景及配置方法可参照身份供应商概述。
  • 响应提取 响应提取是提取接口响应结果的某一部分,命名为参数,供后续测试步骤参数化调用。响应提取需要在前序测试步骤定义,后续测试步骤使用。 在前序测试步骤中,在“响应提取”页签创建要传递的参数。响应提取来源用到内置参数,请参考内置参数了解如何使用内置参数。响应提取同时支持正则表达式的匹配,提取出与给定正则表达式匹配的返回值。 在后续测试步骤中,通过“${参数名}”方式引用前序测试步骤创建的响应提取。后续步骤的URL、请求头、请求体中均可以引用此参数。如果在JSON格式的请求体中引用此参数,请在参数外使用英文引号,如: { id: "用例ID" name:"${name}" } 响应提取支持根据给定的“key:value”获取字符串,详细配置可参考示例:根据给定的key:value从响应体中获取字符串。 字段 说明 出参名称 用于之后使用${出参名称}来引用此参数,名称使用字母数字下划线。 来源 被检测字段的来源,如响应体(JSON)、响应头、响应码。 属性 若来源是响应码,属性为空。详细介绍请参见响应码检查。 若来源是响应头,属性为响应头中字段的名称。详细介绍请参见响应头检查。 若来源是响应体(JSON),属性有两种填写方法: 普通提取表达式(非“$”开头),例如“item.name”。 取字段中的值,支持嵌套取值。详细介绍请参见响应体(JSON)检查。 从响应体中提取数组时,下标可以是数字,也可以是“key:value”表达式,详细介绍请参见示例:根据给定的key:value从响应体中获取字符串。 JsonPath表达式(“$.”或“$[”开头),例如“$.store.book[0].title”。 详细介绍请参见示例:根据JsonPath从响应体中获取数据。 高级提取类型 可选项,使用高级提取类型,辅助提取响应结果信息,若选择不涉及则视为不使用额外的方式匹配。 目前有两种方式: 字符串提取,也就是字符串的截取。 正则表达式,即使用正则方式对来源字符串进行过滤。 高级提取类型优先使用字符串提取功能,若不能满足需求可考虑使用正则表达式。 赋值给环境动态参数 将响应提取后的值赋值给动态变量,用于后续测试引用。请参考新建变量,如何设置动态变量。 父主题: 测试用例管理
  • 创建测试套件 自动化测试套件,实现用例串行/并行执行的策略,测试用例分块加速能力,有效提高资源池利用率,减少任务阻塞情况。并且可提前拦截产品缺陷,更加快速地发现问题。 可通过以下两种入口新建测试套件。 入口一:单击主页面的“新建测试套件”选项。 入口二:单击左侧测试用例旁边的,选择下拉选项中的“新建测试套件”选项。 在“新建测试套件”页面,填写用例名称与描述。 单击,弹出“添加测试用例”对话框,选择需要添加到测试套件的测试用例,单击“确定”。 单击,弹出“执行策略”对话框,根据需要配置执行策略,单击“确定”。 定时类型:执行一次、周期性重复执行,周期性指设置一个执行频率,测试套按照这个频率周期重复执行。 任务开始时间:立即执行、指定开始时间。 执行时间区间:全天执行、指定执行区间,即指定套件执行的时间段。 用例超时时间:设置每个用例的最长执行时间,超过时间,用例则超时失败。 任务继续执行,直到最后一个用例执行完毕。可设置分钟级,小时级,天级。 回到当前测试套件页面,单击右上角“保存“,完成自动化测试套件创建。 父主题: 测试套件管理
  • 手动导入 通过主页面的“更多功能”选项或单击左上角搜索框旁边的,可以展示当前支持的导入选项,可根据需要选择。 导入文件 选择响应格式的文件并上传,然后选择文件中系统识别出来的接口和数据模型导入。 Postman支持Collections和Environment数据集ZIP包的全量导入,也支持单个Collection文件导入。 Postman支持接口和接口用例的前置脚本及后置脚本导入。 导入URL 选择“导入Swagger URL”,输入URL,即可完成文档导入。 通过Swagger URL导入时,需要填写json数据文件的URL,而非Swagger UI的URL。
  • 使用方式 /** * 示例一:该示例引入加密算法模块 crypto-js,并使用其中 AES 对 message 进行加解密 * @param message 需要加密的文本 * @param key 秘钥 */function cryptoJSTest(message, key) { const CryptoJS = require('crypto-js'); // 加密 const ciphertext = CryptoJS.AES.encrypt(message, key).toString(); // 解密 const bytes = CryptoJS.AES.decrypt(ciphertext, key); const originalText = bytes.toString(CryptoJS.enc.Utf8); console.log(originalText);}cryptoJSTest('test message', 'secret key');/** * 示例二:该示例引入 uuid 模块生成一段 uuid,并引入 btoa 模块进行 Base64 编码 */function uuidBtoaTest() { const uuid = require('uuid'); const btoa = require('btoa'); const id = uuid.v4(); const base64EncodedId = btoa(id); console.log(id); console.log(base64EncodedId);}uuidBtoaTest();/** * 示例三:该示例引入 lodash 模块,并测试了其中的 uniq 对数组去重 */function lodashUniqTest() { const lodash = require('lodash'); const arr =[1, 2, 1, 5, 1, 9] const uniqArr = lodash.uniq(arr); console.log(uniqArr.toString())}lodashUniqTest();
  • 内置类库列表 断言 chai (v4.2.0):用于断言BDD/TDD断言。 加密解密库 jsrsasign(10.3.0):用于RSA加密/解密。 Encode、Decode 库 crypto-js(v3.1.9-1):编码/解码库,基本包含常用的编码、解码方式,如Base64、MD5、SHA、HMAC、AES等等。 require方法只允许使用整个模块,不能单独使用类库里的某个子模块,具体看本文档末尾说明。 atob(v2.1.2):用于Base64解码。 btoa(v1.2.1):用于Base64编码。 tv4(v1.3.0):用于校验JSONSchema。 xml2js(v0.4.19):用于XML转JSON。 JSONSchema校验库 ajv(v6.6.2):校验JSONSchema。 实用工具 postman-collection( v3.4.0):Postman Collection库。 cheerio(v0.22.0):jQuery的子集。 lodash (v4.17.11):JS实用工具库。 uuid :生成UUID。 moment(v2.22.2):日期处理库 (不含 locales)。 mockjs:模拟数据生成,拦截Ajax请求。 csv-parse/lib/sync( v1.2.4):处理 CS V格式数据。 iconv-lite:用于字符编码转换,支持数十种字符编码格式的转换。 内置NodeJS模块 path:处理文件路径。 assert:提供一组断言测试。 buffer:处理二进制数据。 util:实用函数的集合。 url:解析URL字符串。 querystring:处理URL,查询字符串。 punycode:字符编码方案。 string-decoder:将Buffer对象解码为字符串。 stream:处理流数据。 events:处理事件。 timers:在给定的毫秒数后调用函数。 通过require方法可以直接使用CodeArts API内置的JS类库。 var cryptoJs = require("crypto-js");console.log(cryptoJs.SHA256("Message"));
  • pm pm:Object pm对象,含有接口运行关联信息。可利用它获取或设置环境变量和全局变量,且访问请求信息和返回结果信息。 pm:info:Object pm.info对象,含有接口运行关联信息。 pm.info.eventName:String:获取当前执行的脚本类型:前置脚本(prerequest),后置脚本(test)。 pm.info.iterationCount:Number:返回执行循环的总次数,仅集合测试有效。 pm.info.iteration:Number:获取当前执行循环(iteration)次序,仅集合测试有效。 pm.info.requestId:String:获取运行中接口用例的唯一ID。 pm.info.requestName:String:获取运行中接口用例名称。
  • 对于响应的处理 pm.response 在后置脚本中pm.response接口请求完成后返回响应信息,Response SDK 参考。 response包含了以下结构: pm.response.code:Number:获取响应码。 pm.response.status:String:获取响应状态。 pm.response.headers:HeaderList:获取响应头。 pm.response.responseSize:Number:获取响应大小。 pm.response.text():Function:以文本形式输出响应体。 pm.response.json():Function:以json形式输出响应体。 pm.response.setBody(''):设置响应体。 pm.response.headers.get:从响应头中获取指定参数的值,Response SDK 参考。 后置脚本中使用“pm.response.headers.get”命令可以获取响应头中指定参数的值。例如想要获取响应Header中date参数的值,那么可以在后置操作中输入如下自定义脚本: var test = pm.response.headers.get("date");console.log(test);
  • 对于请求的处理 pm.request pm.request对象可以在脚本中对请求数据进行访问,Request SDK 参考。在前置脚本中表示即将运行的请求,在后置脚本中,表示已经运行的请求。 pm.request包含了以下结构: pm.request.url:Url:获取当前请求的URL。 pm.request.getBaseUrl():获取运行中环境选择的前置URL。 pm.request.method:String:获取当前请求的方法,如GET、POST等。 pm.request.headers:HeaderList:获取当前请求的headers列表。 pm.request.body:RequestBody:获取当前请求的body体。 pm.request.headers.add({ key: headerName:String, value: headerValue:String}):function:为当前请求添加指定键和值的header。 pm.request.headers.remove(headerName:String):function:删除当前请求里指定键的header。 pm.request.headers.get(headerName:String):function:获取请求里指定名称的header。 pm.request.headers.upsert({ key: headerName:String, value: headerValue:String}):function:插入指定键和值的header(如果header不存在则新增,如果header已存在则修改)。 pm.request.auth:获取请求的身份验证信息。
  • 对于发送请求的处理 pm.sendRequest pm.sendRequest:Function用于脚本异步发送HTTP/HTTPS的请求。 更多参数信息请查阅Collection SDK 文档 。 在前置脚本和后置脚本都可以使用。 更多参考: Request JSON 结构 Response 结构 // 使用字符串URL示例pm.sendRequest("https://postman-echo.com/get", function(err, resq) { if (err) { console.log(err); } else { pm.variables.set("variable_name", "new_value"); }});// 完整请求示例const echoPostRequest = { url: "https://postman-echo.com/post", method: "POST", header: { header_name1: "value1", header_name2: "value2", }, // body 为 x-www-form-urlencoded 格式 body: { mode: "urlencoded", // 此处为 urlencoded // 此处为 urlencoded urlencoded: [ { key: "account", value: "codeartsapi" }, { key: "password", value: "123456" }, ], }, /* // body 为 form-data 格式 body: { mode: 'formdata', // 此处为 formdata // 此处为 formdata formdata: [ { key: 'account', value: 'codeartsapi' }, { key: 'password', value: '123456' } ] } // body 为 json 格式 header: { "Content-Type": "application/json", // 提醒:header中需要添加Content-Type }, body: { mode: 'raw', raw: JSON.stringify({ account: 'codeartsapi', password:'123456' }) } // body 为 raw 或 json 格式 body: { mode: 'raw', raw: 'body内容' } */};pm.sendRequest(echoPostRequest, function(err, resq) { console.log(err ? err : resq.json());});// 对返回结果进行断言pm.sendRequest("https://postman-echo.com/get", function(err, resq) { if (err) { console.log(err); } pm.test("response should be OK to process", function() { pm.expect(err).to.equal(null); pm.expect(resq).to.have.property("code", 200); pm.expect(resq).to.have.property("status", "OK"); });});
  • 角色与操作权限说明 CodeArts API服务 各用户角色类型及对应的操作权限说明如下: 表1 通用设置默认角色权限说明 服务资源 权限 权限说明 项目管理员 项目经理 产品经理 测试经理 运维经理 系统工程师 Committer 开发人员 测试人员 参与者 浏览者 角色 权限设置 设置角色权限 Y Y N Y N N N N N N N 成员设置 设置项目成员 Y Y N Y N N N N N N N 项目 编辑 编辑项目信息 Y Y N Y Y N N Y Y N Y 表2 API测试默认角色权限说明 服务资源 权限 权限说明 项目管理员 项目经理 产品经理 测试经理 运维经理 系统工程师 Committer 开发人员 测试人员 参与者 浏览者 用例 创建 创建用例 Y Y Y Y N Y Y Y Y N N 查看 查看用例 Y Y Y Y Y Y Y Y Y Y Y 修改 修改用例 Y Y Y Y N Y Y Y Y N N 删除 删除用例 Y Y Y Y N Y Y Y Y N N 执行 执行用例 Y Y Y Y N Y Y Y Y N N 停止 停止用例 Y Y Y Y N Y Y Y Y N N 导出到文件 导出用例到文件 Y Y Y Y Y Y Y Y Y Y Y 从文件导入 从文件导入用例 Y Y Y Y N Y Y Y Y N N 从版本导入 从版本导入用例 Y Y Y Y N Y Y Y Y N N 合并到基线 合并到基线 Y Y N Y N Y Y N N N N 规范检查 规范检查 Y Y Y Y N Y Y Y Y N N 测试套 创建 创建测试套 Y Y Y Y N Y Y Y Y N N 查看 查看测试套 Y Y Y Y Y Y Y Y Y Y Y 修改 修改测试套 Y Y Y Y N Y Y Y Y N N 删除 删除测试套 Y Y Y Y N Y Y Y Y N N 执行 执行测试套 Y Y Y Y N Y Y Y Y N N 停止 停止测试套 Y Y Y Y N Y Y Y Y N N 测试版本 创建 创建测试版本 Y Y N Y N Y Y N N N N 查看 查看测试版本 Y Y Y Y Y Y Y Y Y Y Y 修改 修改测试版本 Y Y N Y N Y Y N N N N 删除 删除测试版本 Y Y N Y N Y Y N N N N 接口测试-关键字 创建 创建关键字 Y Y Y Y N Y Y Y Y N N 查看 查看关键字 Y Y Y Y Y Y Y Y Y Y Y 编辑 编辑关键字 Y Y Y Y N Y Y Y Y N N 删除 删除关键字 Y Y Y Y N Y Y Y Y N N 全局变量 创建 创建全局变量 Y Y Y Y N Y Y Y Y N N 查看 查看全局变量 Y Y Y Y Y Y Y Y Y Y Y 编辑 编辑全局变量 Y Y Y Y N Y Y Y Y N N 删除 删除全局变量 Y Y Y Y N Y Y Y Y N N 规则 创建 创建规则 Y Y Y Y N Y Y Y Y N N 查看 查看规则 Y Y Y Y Y Y Y Y Y Y Y 修改 修改规则 Y Y Y Y N Y Y Y Y N N 删除 删除规则 Y Y Y Y N Y Y Y Y N N 表3 项目资源默认角色权限说明 服务资源 权限 权限说明 项目管理员 项目经理 产品经理 测试经理 运维经理 系统工程师 Committer 开发人员 测试人员 参与者 浏览者 注册APIG 创建 注册API Y Y N N Y N N N N N N 查看 查看注册API Y Y Y Y Y Y Y Y Y Y Y 编辑 重新注册API Y Y N N Y N N N N N N 删除 删除注册API Y Y N N Y N N N N N N 版本控制 创建 版本管理页面新增版本按钮权限 Y Y N N N N N N N N N 查看 查看版本管理页面权限 Y Y Y Y Y Y Y Y Y Y Y 编辑 版本管理页面编辑按钮权限 Y Y N N N N N N N N N 删除 版本管理页面删除按钮权限 Y Y N N N N N N N N N 定时导入API 创建 创建定时导入任务 Y Y N N N N N N N N N 查看 查看定时导入任务 Y Y Y Y Y Y Y Y Y Y Y 编辑 编辑定时导入任务 Y Y N N N N N N N N N 删除 删除定时导入任务 Y Y N N N N N N N N N 执行 执行定时导入任务 Y Y N N N N N N N N N 父主题: 管理项目成员与角色权限
  • 创建Markdown文件 新建Markdown,可通过以下三种方式完成。 方法一:单击目录树搜索框右侧的,在弹出的下拉框中,选择“新建Markdown”。 方法二:在目录树中选择一个目录,单击右侧图标,在弹出的下拉框中,选择“新建Markdown”。 进入“新建标签页”,在该标签页可以编辑Markdown文件,主要包括:目录、名称、正文。 目录:在上一步中,如果通过方法一和方法二新建Markdown,目录初始内容为空,可以手动选择;如果通过方法三新建Markdown,目录会自动生成为选中的目录,也可以手动修改。 名称:可根据业务需要自定义命名,不能为空。命名规则:只支持中文、英文、下划线、数字和“.”,且以中英文开头,长度为3-64个字符。 正文:可手动输入文字,也可使用组件插入特定的内容,如:表格、超链接、图片;正文样式也可以使用组件进行调整;正文编辑支持全屏模式;在左侧编辑正文时,右侧会同步展示编辑内容,便于查看、修改样式等。 编辑完成后,单击右上角“保存”,左侧目录树同步刷新,界面会自动跳转到文档页面,展示名称、正文,上方标签页的名称也会更新为Markdown文件名称。 移动Markdown(可选)。 单击并拖拽Markdown到目标目录后释放即可,移动成功后,目录树会自动刷新,Markdown文件的目录也会同步改变。
  • 执行流程 CodeArts API提供基于JavaScript的脚本引入,通过脚本可以实现在快捷调试或接口请求时添加动态行为。脚本执行流程如图: CodeArts API兼容Postman脚本语法,可以将Postman脚本迁移到CodeArts API中使用。 CodeArts API脚本能力仅限于快捷调试、接口调试、接口调试用例。 接口的前置脚本与后置脚本支持配置多个,并按照配置顺序执行。 CodeArts API支持脚本输入提示。 父主题: 脚本能力
  • 断言 可以利用后置脚本验证API响应返回结果的正确性。 // 示例1:pm.response.to.havepm.test('Response status is 200', function() { pm.response.to.have.status(200);});// 示例2:pm.expect()pm.test('this is production', function() { pm.expect(pm.environment.get('env')).to.equal('production');});// 示例3:response assertionspm.test('no error', function() { pm.response.to.not.be.error; pm.response.to.have.jsonBody(''); pm.response.to.not.have.jsonBody('error');});// 示例4:pm.response.to.be* pm.test('no error', function() { // 断言结果:info, success, redirection, clientError, serverError, are other variants pm.response.to.be.ok; // 断言有body,并且是json格式 pm.response.to.be.withBody; pm.response.to.be.json;});
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的 IaaS、PaaS 和 SaaS 类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。华为云租户的安全责任在于对使用的 IaaS、PaaS 和 SaaS 类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API 网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 设计API 接口文档应针对以下要素进行设计: 接口基本信息 接口路径 请求方式 接口请求参数 接口返回响应 安全方案 接口基本信息 填写接口的基本信息,包括: 名称:接口名称。 摘要:接口的摘要信息。 状态:API生命周期的状态,包括设计中、联调中、测试中、测试完、已发布、将废弃、已废弃。 所属目录:接口在项目中所属的目录。 所属Tags:接口所属的Tags,可以直接选择所属目录信息当作所属Tags,也可以在所属Tags框中手动输入Tag名再回车来生成所属Tags。 描述:可添加接口的相关描述,包括接口功能、使用注意事项、使用场景定义等详细描述信息,接口描述支持通用Markdown语言编辑。 接口路径 接口的URL,客户端可以通过接口路径向服务端发起请求。以“/”开头,如:“/car”、“/car/{owner}”。 接口路径一般不包含 域名 和http、https协议名,如需加上域名进行调试,在调试功能页面有相应处理。 大括号“{}”中间的字符串表示Path参数。 不支持通过接口路径来添加Query参数,如:“/car?owner=zhangsan”。 支持创建100个项目中根目录。 请求方式 定义接口的请求方式,制定了客户端对服务端资源操作的方法,在API设计过程中,需要根据业务和操作类型选择合适的请求方式。 GET(获取):用于获取指定资源,使用查询参数传递参数,适用于读取资源和查询数据。 POST(提交):用于提交数据。POST请求可以传递请求体参数,适用创建新资源、提交表单数据或执行某些操作等场景。 PUT(更新):用于更新或替换服务端的指定资源。 DELETE(删除):用于删除服务端的指定资源。 OPTIONS(选项):用于获取服务器支持的http方法和资源的相关信息。可用于客户端与服务端之间的握手过程,了解服务器所支持的方法和功能。 HEAD(请求头):与GET类似,但只返回响应头部,不返回实体内容,用于获取资源的元信息,如:文件大小、修改日期等。 PATCH(补丁):用于对资源进行局部更新。PATCH请求类似于PUT请求,但是只更新资源的一部分。 TRACE(跟踪):用于建立与代理服务器的隧道连接,通常用于进行安全的SSL/TLS加密通信。 接口请求参数 Params、Path、Header、Cookies Query参数:接口请求中的一种参数传递方式,它通常用于传递一些可选的参数,比如过滤条件、排序方式、分页参数等。在URL中表现为末尾“?”后的字符串(如:“/car?owner=zhangsan”,那么“owner=zhangsan”即Query参数,其中“owner”为参数的key,“zhangsan”为参数的value)。 Path参数:也称为“路径参数”,是API请求中的一种参数传递方式。在URL中表现为大括号“{}”括起来的字符串(如:“/car/{owner}”,那么“{owner}”表示key为“owner”的Path参数)。 Header参数:请求头中的参数。 Cookies:类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。 前置脚本:CodeArts API支持接口前置脚本操作,详见脚本能力。 后置脚本:CodeArts API支持接口后置脚本操作,详见脚本能力。 请求体 在发起http请求时,需要带上一些参数以便服务器处理,通过http请求体传递的参数被称为Body参数。Body参数包含在请求的主体部分中,通常是一些表单数据、JSON数据或者二进制数据。在发送请求时,会根据Body参数类型,自动在请求Header中添加对应Content-Type参数。若手工设置Content-Type的类型,则必须与Body的参数类型匹配,否则系统会自动忽略掉手动设置的Content-Type值。 none:无body参数。 application/json:json格式数据。Content-Type为 “application/json”。 application/xml:xml类型数据,用于标识文件和图像等媒体类型,也可以标识结构化数据。Content-Type为 “application/xml”。 multipart/form-data:表单数据。Content-Type为 “multipart/form-data”。 application/x-www-form-urlencoded:将表单数据编码后传输到服务器。数据被编码为一系列键值对,每个键值对之间以&连接,并且键与值之间以=分隔。Content-Type为“application/x-www-form-urlencoded” 。 此外,还支持根据Body体数据结构自动生成示例,以及单击“智能导入”,根据输入的Json自动生成数据结构功能。 接口返回响应 返回响应的定义包含:返回响应的状态码、响应内容的数据结构、响应示例和响应头。 返回响应的状态码:通过加号来添加运行接口后可能的响应状态码,单击响应状态码可以对状态码进行修改。 响应内容的数据结构:规定响应内容的格式,分为“application/json”、“application/xml”、“text/plain”三种,“application/json”和“application/xml”两种情况下可以对响应内容的结构进行进一步定义,如:响应内容为“application/json”,规定json内容里的参数类型等。 响应示例:响应内容的示例。 响应头:返回响应的Header。 返回响应也可以直接引用公共模型中已定义好的“公共响应”,并且支持自动生成响应示例。 安全方案 OpenAPI规范中,安全模型对应OpenAPI3.0的components.securitySchemes。大部分的Web服务都需要经过身份认证才能访问,security就是用于描述API的安全信息和访问授权协议等信息的对象,Open API支持的最常见授权方案如下: API key HTTP Oauth2.0 OpenID Connect 安全方案引入需要在公共模型中建立安全模型,详见•安全模型。
  • YApi项目导入 导出数据 打开YApi对应项目,单击“数据管理”,进入“数据管理”页面。 在导出数据模块中,选择“json”数据方式,单击导出,完成导出。 导入数据 打开CodeArts API首页,单击“导入项目”。 弹出“导入项目”对话框,选择导入文件格式为“YApi”,选择需要导入的YApi文件。 在“导入项目”对话框输入项目名称,单击“确定”。 弹出“导入预览”对话框,可预览所有导入数据,然后单击“导入”。 弹出导入进度对话框,可查看导入进度。 导入完成后,可进入导入项目,查看导入的接口。 当导入请求体和响应体结构为Json格式时,支持JsonSchema和Json标准(双斜杠类型字段注释将被识别为字段描述)格式导入。
  • 证书链 从根CA到私有证书之间的完整的证书链路,即各个层级证书按序链在一起的文件,用于进行身份的逐层校验。各级证书的链接关系,如图 证书链所示。 PCA服务支持创建最多七级的CA层级结构,一个好的私有CA层次结构可实现对证书的精细化控制,以及提升PKI(公钥基础设施)体系的安全性,具体请参见私有CA层次结构设计。 图3 证书链 证书校验主要体现在两方面: 证书链的完整性校验,逐层校验证书的有效性。 证书链中的根CA是否被校验方所信任(提前预置到信任列表中)。 证书校验过程中主要包含的校验项: 实体所宣称的主体信息(如服务端的域名)是否在证书可选名称的范围内。 证书是否过期。 密钥用法是否符合当前操作(如密钥协商、数字签名等)。 数字签名验证。 是否已被吊销。 此处未列举出所有校验项,X509证书允许用户增加多种自定义扩展项,详情请参考相关国际标准。
  • PCA证书有效期 在证书链中,根CA是整条链的信任起点,一旦根CA过期,其与其子CA签发的所有证书将不再被信任,因此根CA的有效期是其下层所有证书的有效期上限。即使签发下层证书时,可以将有效期填写超过根CA的有效期(不做强制要求下),但在校验证书链时,只要链中根CA过期,校验就会失败。 在PCA服务中,强制要求新签发的证书的到期时间不可超过其父CA的到期时间,确保从根CA到私有证书之间的链路上,有效期逐层递减。PCA服务对各类证书有效期的约束见表 证书有效期约束。 不同类型证书的有效期是根据其扮演的角色而定的。使用越频繁的证书,其密钥材料泄露风险更高,有效期应尽量设置更小。例如,根CA通常只用于签发子CA,使用频率最少,且使用最高的安全保护措施(PCA中使用KMS进行CA密钥管理),有效期一般设置为10~30年左右。子CA根据其所在的层级,越往下有效期逐级减少,最下层的证书用于签发大量的私有证书,有效期通常设置为2~5年左右。私有证书,频繁用于通信,通常根据使用场景的安全要求,将有效期设置为几个小时、几个月以及一两年不等。 表1 证书有效期约束 证书类型 最小有效期 最大有效期 是否支持延长 有效期其它约束 根CA 1小时 30年 否 无 子CA 1小时 20年 否 在父CA有效期内 私有证书 1小时 20年 否 在父CA有效期内
  • 证书吊销列表 证书吊销列表(Certificate Revocation List,CRL)是指在有效期内就被其父CA吊销的证书的名单,其中被吊销的证书类型,包含子CA与私有证书。证书吊销列表是一种有固定格式的结构化数据文件,其中包含颁发者信息、吊销列表的生效时间、列表下一次更新时间、签发算法、指纹以及已被吊销证书的序列号与对应的吊销时间和吊销理由码。证书吊销列表具体内容,如图 证书吊销列表所示。如何配置证书吊销列表,请参见配置证书吊销列表。 图2 证书吊销列表
  • 证书品牌 目前 云证书管理 支持购买的证书品牌及不同品牌支持签发的证书类型如下表所示: 表2 证书品牌说明 证书品牌 说明 是否支持DV(域名型)SSL证书 是否支持OV(企业型)SSL证书 是否支持EV(增强型)SSL证书 DigiCert DigiCert(原Symantec)是全球最大、最权威的数字证书颁发机构。全球知名的数字证书提供商,服务范围超过150多个国家,拥有超过10万客户。 优势:安全、稳定、兼容性好。受银行、金融等行业青睐,适用于高安全性要求的数字交易场景。 是 支持单域名、泛域名。 是 支持单域名、多域名和泛域名和IP地址。 是 支持单域名、多域名。 GeoTrust GeoTrust是全球第二大数字证书颁发机构,也是身份认证和信任认证领域的领导者。公司服务于各大中小型企业,一直致力于用最低的价格来为客户提供最好的服务。 优势:该品牌是DigiCert旗下的子品牌。安全、稳定、兼容性好、HTTPS防护门槛低、性价比高。 说明: GeoTrust更名为Rapid,详情请参见【2023年4月17日】关于Geo Trust DV证书名称变更的通知 是 支持单域名、泛域名。 是 支持单域名、多域名和泛域名和IP地址。 是 支持单域名、多域名。 GlobalSign GlobalSign成立于1996年,是全球最早的数字证书认证机构之一。它是一家声誉卓著,备受信赖的CA中心和 SSL数字证书 提供商,并在全球拥有众多合作伙伴。 优势:签发速度快、验证速度快。该品牌是华为云、大型电商企业都在用的证书,全系标配的RSA+ECC算法,资源占用少。 否 是 支持单域名、多域名、泛域名和IP地址。 是 支持单域名、多域名。 CFCA(国产) 中国金融认证中心(CFCA)是经中国人民银行牵头组建、国家信息安全管理机构批准成立的国家级权威的安全认证机构,通过了国际Webtrust认证,受到微软、Google、苹果、火狐、Adobe认可,是全球权威行业组织CA/B重要成员,亚洲PKI论坛成员。 优势:由中国权威数字证书认证机构自主研发,国产证书,支持RSA/SM算法。7*24小时金融级的安全保障服务,具有完善的风险承保计划。中文版全球信任体系电子认证业务规则(CPS),便于用户理解双方权利和义务。 否 是 支持单域名、多域名和泛域名和IP地址。 是 支持单域名、多域名。 TrustAsia(国产) TrustAsia 是国产证书品牌,根据国内企业用户网络环境和使用习惯而建立,不仅提供支持主流RSA与ECC算法的“国际证书”,还提供支持我国商用密码SM2及相关标准算法的“国密证书”,支持中国区 OCSP。通过严密的企业级认证,为企业和个人提供安全可靠的加密数据传输和身份验证服务,全方位满足客户的不同要求。 优势:根据国内企业用户网络环境和使用习惯建立,支持RSA/ECC/SM2算法,支持中国区 OCSP,响应速度更快。 是 仅支持泛域名。 是 支持单域名、多域名和泛域名和IP地址。 是 支持单域名、多域名。 vTrus(国产) vTrus是国产证书品牌,通过了国际Webtrust认证,支持国际主流的RSA标准加密算法,同时支持我国商用密码SM2标准算法。 优势:兼容性好,支持所有主流操作系统及软件库(如iOS 5+,Android4.0,Windows Win7+,Java1.6.15+),支持99.99%的主流浏览器(如Chrome、IE、Safari、火狐等),国密证书兼容国密浏览器(如360国密浏览器、奇安信浏览器、红莲花浏览器等) 是 支持单域名、泛域名。 是 支持单域名、多域名和泛域名和IP地址。 否
  • 证书支持的加密算法 华为云 云证书管理服务 签发的SSL证书目前支持RSA、ECC、SM2三种加密算法。 RSA:目前在全球应用广泛的非对称加密算法,兼容性在三种算法中最好,支持主流浏览器和全平台操作系统。一般采用2048位或3072位的加密长度。 ECC:椭圆曲线加密算法。相比于RSA,ECC加密速度快、效率更高、服务器资源消耗低,目前已在主流浏览器中得到推广,成为新一代主流算法。一般采用256位加密长度。 SM2:中国国家密码管理局发布的ECC椭圆曲线加密算法,在中国商用密码体系中用来替代RSA算法。 不同类型的证书支持的加密算法如表 证书支持的加密算法所示。 表4 证书支持的加密算法 证书品牌 证书类型 域名类型 支持的加密算法 DigiCert DV (Basic) 单域名 RSA_2048、RSA_3072、RSA_4096 泛域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 OV 单域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 多域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 泛域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 OV Pro 单域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 多域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 泛域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 EV 单域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 多域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 EV Pro 单域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 多域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 GeoTrust DV (Basic) 说明: Geotrust DV(basic) 证书已更名为 Rapid SSL,详情请参见【2023年4月17日】关于Geo Trust DV证书名称变更的通知 单域名 RSA_2048、RSA_3072、RSA_4096 泛域名 RSA_2048、RSA_3072、RSA_4096 DV 单域名 RSA_2048、RSA_3072、RSA_4096 泛域名 RSA_2048、RSA_3072、RSA_4096 OV 单域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 多域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 泛域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 EV 单域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 多域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 GlobalSign OV 单域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 多域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 泛域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 IP地址 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 EV 单域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 多域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 CFCA(国产) OV 单域名 RSA_2048、SM2 多域名 RSA_2048、SM2 泛域名 RSA_2048、SM2 EV 单域名 RSA_2048 多域名 RSA_2048 TrustAsia(国产) DV 泛域名 RSA_2048 OV 单域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384、SM2 多域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 泛域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384、SM2 EV 单域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 多域名 RSA_2048、RSA_3072、RSA_4096、EC_P256、EC_P384 vTrus(国产) DV 单域名 RSA_2048 泛域名 RSA_2048 OV 单域名 RSA_2048、RSA_4096、SM2 多域名 RSA_2048、RSA_4096、SM2 泛域名 RSA_2048、RSA_4096、SM2
  • 证书支持的域名类型 不同域名类型的证书所支持绑定的域名区别如下表所示: 表3 域名类型 域名类型 说明 单域名 即单个SSL证书只支持绑定1个单域名。例如,example.com 多域名 即单个SSL证书可以同时绑定多个域名。 最多可以支持250个域名。 仅当证书类型为OV、OV Pro时,多个域名中可包含泛域名。其他类型的证书,仅支持绑定多个单域名。 多个域名可以分批次绑定。例如,购买多域名类型证书,域名数量为3的场景,首次申请证书时仅填写了2个域名,证书签发后可再追加填写1个域名。 当购买多域名类型证书,域名数量为3的场景,仅支持绑定3个域名。如果后续还需添加,则需要重新购买证书。 泛域名 即单个SSL证书支持绑定一个且只有一个泛域名。*.*.example.com多个通配符的泛域名不支持。 泛域名只允许添加一个通配符域名,例如*.example.com(包含a.example.com、b.example.com、......,但是不包含a.a.example.com)。 更多关于如何选择域名类型,详情请参见如何选择域名类型?
  • 证书类型 华为云SSL证书服务支持购买DV、OV和EV三种类型的SSL证书。不同证书类型适用的应用场景、信任等级和安全性不同,具体区别如表 各种证书之间的区别所示。 表1 各种证书之间的区别 证书类型 安全等级 认证强度 适用场景 支持的证书品牌 审核时长 DV(域名型) 一般 简易验证域名所有权 个人或企业测试的网站 DigiCert GeoTrust TrustAsia vTrus 数小时内快速颁发 OV(企业型) 高 全面验证组织及企业真实性和域名所有权 教育、政府、互联网、中小型企业应用、电商等服务型网站 例如,Apple Store、微信小程序等 DigiCert GeoTrust GlobalSign CFCA TrustAsia vTrus 3~5个工作日 EV(增强型) 最高 严格验证组织及企业真实性和域名所有权 有严格安全要求的大型企业、机构和组织的网站 例如,金融、保险、银行等 DigiCert GeoTrust GlobalSign CFCA TrustAsia 7~10个工作日
  • CCM权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 CCM部署时不区分物理区域,为全局级服务。授权时,在全局项目中设置权限,访问CCM时,不需要切换区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对CCM服务,管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,CCM支持的API授权项请参见权限及授权项说明。 如表1所示,包括了CCM所有系统角色。 表1 CCM系统角色 角色名称/策略名称 描述 类别 依赖关系 SCM Administrator SSL证书管理服务管理员权限,拥有服务的所有权限。 系统策略 依赖“Server Administrator”和“Tenant Guest”角色,在同项目中勾选依赖的角色。 购买证书需要依赖 BSS Administrator角色。 BSS Administrator:系统角色,费用中心(BSS)管理员,拥有该服务下的所有权限。 WAF FullAccess:系统策略, Web应用防火墙 管理员。 ELB FullAccess:系统策略,弹性负载均衡服务所有权限。 CDN FullAccess:系统策略,具有内容分发网络(CDN)所有细粒度鉴权接口的操作权限。 EPS FullAccess:系统策略,企业项目管理服务所有权限。 OBS Administrator:系统策略 , 对象存储服务 管理员。 DNS FullAccess:系统策略,拥有该权限的用户可以拥有云解析服务的全部权限,包括创建、删除、查询、修改等操作。 SCM FullAccess SSL证书管理服务的所有权限。 系统策略 购买证书需要依赖 BSS Administrator角色。 BSS Administrator:系统角色,费用中心(BSS)管理员,拥有该服务下的所有权限。 WAF FullAccess:系统策略,Web应用防火墙管理员。 ELB FullAccess:系统策略,弹性负载均衡服务所有权限。 CDN FullAccess:系统策略,具有内容分发网络(CDN)所有细粒度鉴权接口的操作权限。 EPS FullAccess:系统策略,企业项目管理服务所有权限。 OBS Administrator:系统策略 ,对象存储服务管理员。 DNS FullAccess:系统策略,拥有该权限的用户可以拥有云解析服务的全部权限,包括创建、删除、查询、修改等操作。 SCM ReadOnlyAccess SSL证书管理服务只读权限,拥有该权限的用户仅能查询证书信息,不具备对证书进行增删改权限。 系统策略 无。 PCA FullAccess 私有证书管理服务所有权限。 系统策略 创建私有CA或私有证书需要依赖BSS Administrator角色。 EPS FullAccess:系统策略,企业项目管理服务所有权限。 OBS Administrator:系统策略 ,对象存储服务管理员。 表2列出了SSL证书管理常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 如需购买证书,账号除了必须拥有“SCM Administrator”或“SCM FullAccess”之外,还需要拥有“BSS Administrator”权限。 BSS Administrator:费用中心、资源中心、账号中心的所有执行权限。项目级角色,在同项目中勾选。 表2 常用操作与系统权限的关系 操作 SCM Administrator SCM FullAccess SCM ReadOnlyAccess 查询SSL证书列表 √ √ √ 查询SSL证书详情 √ √ √ 查询SSL证书产品类型 √ √ √ 查询SSL证书产品详情 √ √ √ 取消 SSL证书申请 √ √ x 购买SSL证书 √ √ x 申请SSL证书 √ √ x 保存申请SSL证书填写的信息 √ √ x 读取申请SSL证书填写的信息 √ √ √ 修改SSL证书 √ √ x 删除SSL证书 √ √ x 下载SSL证书 √ √ x 上传认证信息 √ √ x 吊销SSL证书 √ √ x 推送SSL证书 √ √ x 查询SSL证书推送记录 √ √ √ 上传SSL证书 √ √ x 校验CSR √ √ x 新增附加域名 √ √ x 取消隐私授权 √ √ x 重新签发SSL证书 √ √ x 退订SSL证书 √ √ x
  • 什么是SSL证书管理 SSL证书管理(SSL Certificate Manager,SCM)是一个SSL(Secure Sockets Layer)证书管理平台。它是由华为云联合全球知名数字证书服务机构(CA,Certificate Authority),在华为云平台上为您提供一站式SSL证书的全生命周期管理,实现网站的可信认证与安全数据传输。 什么是SSL证书? SSL证书是一种遵守SSL协议的服务器数字证书,由受信任的根证书颁发机构颁发。 SSL证书采用SSL协议进行通信,SSL证书部署到服务器后,服务器端的访问将启用HTTPS协议。您的网站将会通过HTTPS加密协议来传输数据,可帮助服务器端和客户端之间建立加密链接,从而保证数据传输的安全。 华为云SSL证书管理与HTTPS的关系 您可以通过华为云SSL证书管理购买SSL证书,并向CA机构提交证书申请,CA机构审核通过后将会签发证书。签发后,您需要将SSL证书下载并安装到Web服务器中或一键部署至华为云其他云产品中,安装或部署完成后,您的Web服务器或云产品将会通过HTTPS加密协议来传输数据。 SSL证书的作用 网站身份验证,确保数据发送到正确的客户端和服务器。 在客户端和服务器端之间建立加密通道,保证数据在传输过程中不被窃取或篡改。
  • 私有证书管理 功能名称 功能描述 华为云托管的证书颁发机构 私有证书管理服务提供证书颁发机构(Certificate Authority,CA),支持多种密钥算法,其中包括:RSA_2048、RSA_4096、EC_P256、EC_P384等。支持X.509 v3的证书格式,支持CA多级扩展和多级认证,采用国际通用的对称和非对称算法,符合PKI/CA国际标准。 私有证书生命周期管理 私有证书管理服务提供对私有证书的申请、下载、吊销,具备千万级以上的证书管理能力。 密钥生命周期管理 私有证书管理服务使用华为云的密钥管理服务(Key Management Service,KMS)、硬件安全模块HSM(Hardware Security Module)来保护CA密钥的安全,支持软件和硬件产生密钥对,完成密钥的产生、更新、删除、恢复等功能。 私有证书撤销列表(Certificate Revocation List,CRL)管理 私有证书管理服务能定期自动向您的华为云OBS桶发布和更新证书撤销列表,供您或应用下载。应用程序、服务以及设备可以定期使用CRL评估证书状态。 API自动化集成 私有证书管理服务提供API,可以帮助您在开发环境高效集成,快速进行产品部署。
  • 证书选型案例 表1 以下为部分典型行业证书选型案例,您在选购证书时可以进行参考。 实例 所属行业 业务特征 常用证书类型 中国农业银行 中国平安 金融、银行、保险 有严格的数据保密要求 希望在网站地址栏展示身份信息 EV 教育部 淘宝、京东 百度、新浪、今日头条 上海证券交易所 国家电网 外交部 华为云 教育、政府、互联网 有严格的数据保密要求 无需在网站地址栏展示身份信息 网站后期有多个新增站点的需求 OV泛域名证书 个人网站 个人业务 无数据传输业务 网站用来展示纯信息或内容 DV 父主题: 如何选购SSL证书
  • SSL证书管理 功能名称 功能描述 SSL证书申购 云证书管理服务SSL证书管理提供了OV(企业版)、OV Pro(企业型专业版)、EV(增强型)、EV Pro(增强型专业版)、DV(域名型)和DV(Basic)基础版六种类型的SSL证书,以及DigiCert、GlobalSign、GeoTrust、CFCA、TrustAsia、vTrus六种品牌供您选择。 SSL证书统一管理 云证书管理服务提供上传证书和私钥功能,实现在华为云平台统一管理各种证书、提交审核、查看证书绑定域名和到期时间、修改证书名称、删除已过期的证书等一站式服务,帮助您有效提高证书运维效率。详细操作请参见上传已有证书。 SSL证书一键部署 支持一键将数字证书部署在华为云已经开通的云产品中(ELB、CDN、WAF),以最小成本在云上应用。 SSL证书吊销 按照标准的证书吊销流程,经过CA机构审核后,安全、快捷地吊销已签发的SSL证书。 SSL证书退款 SCM支持7天无理由退款,详细操作请参见退订证书。 SSL证书续费 SSL证书存在有效期限制。CA机构签发的SSL证书默认有效期为1年,您需要在证书到期前进行续费。详细操作请参见续费证书。
  • 收集范围 CCM收集及产生的个人数据如表1所示: 表1 个人数据范围列表 类型 收集方式 是否可以修改 是否必须 租户ID 在控制台进行任何操作时Token中的租户ID 在调用API接口时Token中的租户ID 否 是,租户ID是证书资源身份标识 姓名 在申请SSL证书时填写的联系人姓名 是 是,证书审核人工认证阶段必须 邮箱 在申请SSL证书或私有证书时填写的邮箱 申请SSL证书时填写的邮箱:是 申请私有证书时填写的邮箱:否 申请SSL证书时填写的邮箱:是,证书审核人工认证阶段必须 申请私有证书时填写的邮箱:否 手机号码 在申请SSL证书时填写的联系人手机号 是 是,证书审核人工认证阶段必须 企业营业执照 在申请SSL证书时,可以选择上传企业营业执照 是 否 银行开户许可 在申请SSL证书时,可以选择上传银行开户许可 是 否 企业项目ID 在申请或使用SSL证书、私有证书时,可以为证书分配企业项目 是 已开通企业项目:是 未开通企业项目:否
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全