云服务器内容精选

  • 行级访问控制 在业务开发过程中,存在多个用户共同访问和维护同一张表的场景,需要针对不同用户设置不同行数据的访问权限。例如只允许用户A查看跟自己相关的行数据,即相对于表的管理员能看到全部表数据而言,用户A执行SELECT * FROM table_name的时候,只能看到部分行数据,不能看到所有,以行级进行数据访问控制,对此GaussDB(DWS)行级访问控制特性实现了这一功能。将数据库访问控制精确到数据表行级别,使数据库达到行级访问控制的能力。不同用户执行相同的SQL查询操作,读取到的结果是不同的。 用户可以在数据表创建行访问控制(Row Level Security)策略,该策略是指针对特定数据库用户、特定SQL操作生效的表达式。当数据库用户对数据表访问时,若SQL满足数据表特定的Row Level Security策略,在查询优化阶段将满足条件的表达式,按照属性(PERMISSIVE | RESTRICTIVE)类型,通过AND或OR方式拼接,应用到执行计划上。 行级访问控制的目的是控制表中行级数据可见性,通过在数据表上预定义Filter,在查询优化阶段将满足条件的表达式应用到执行计划上,影响最终的执行结果。当前受影响的SQL语句包括SELECT,UPDATE,DELETE。 了解更多请参见行级访问控制。 父主题: 身份认证与访问控制
  • 操作场景 HBase把Thrift结合起来可以向外部应用提供HBase服务。在HBase服务安装时可选部署ThriftServer实例,ThriftServer系统可访问HBase的用户,拥有HBase所有NameSpace和表的读、写、执行、创建和管理的权限。访问ThriftServer服务同样需要进行Kerberos认证。HBase实现了两套Thrift Server服务,此处“hbase-thrift-example”为ThriftServer实例服务的调用实现。
  • 样例代码 代码认证 以下代码在“hbase-thrift-example”样例工程的“com.huawei.bigdata.hbase.examples”包的“TestMain”类中。 private static void init() throws IOException { // Default load from conf directory conf = HBaseConfiguration.create(); String userdir = TestMain.class.getClassLoader().getResource("conf").getPath() + File.separator;[1] //In Linux environment //String userdir = System.getProperty("user.dir") + File.separator + "conf" + File.separator; conf.addResource(new Path(userdir + "core-site.xml"), false); conf.addResource(new Path(userdir + "hdfs-site.xml"), false); conf.addResource(new Path(userdir + "hbase-site.xml"), false); } [1]userdir获取的是编译后资源路径下conf目录的路径。初始化配置用到的core-site.xml、hdfs-site.xml、hbase-site.xml文件和用于安全认证的用户凭证文件,需要放置到"src/main/resources/conf"的目录下。 安全登录 请根据实际情况,修改“userName”为实际用户名,例如“developuser”。 private static void login() throws IOException { if (User.isHBaseSecurityEnabled(conf)) { userName = " developuser "; //In Windows environment String userdir = TestMain.class.getClassLoader().getResource("conf").getPath() + File.separator; //In Linux environment //String userdir = System.getProperty("user.dir") + File.separator + "conf" + File.separator; userKeytabFile = userdir + "user.keytab"; krb5File = userdir + "krb5.conf"; /* * if need to connect zk, please provide jaas info about zk. of course, * you can do it as below: * System.setProperty("java.security.auth.login.config", confDirPath + * "jaas.conf"); but the demo can help you more : Note: if this process * will connect more than one zk cluster, the demo may be not proper. you * can contact us for more help */ LoginUtil.setJaasConf(ZOOKEEPER_DEFAULT_LOGIN_CONTEXT_NAME, userName, userKeytabFile); LoginUtil.login(userName, userKeytabFile, krb5File, conf); } } 连接ThriftServer实例 try { test = new ThriftSample(); test.test("10.120.16.170", THRIFT_PORT, conf);[2] } catch (TException | IOException e) { LOG.error("Test thrift error", e); } [2]test.test()传入参数为待访问的ThriftServer实例所在节点ip地址,需根据实际运行集群情况进行修改,且该节点ip需要配置到运行样例代码的本机hosts文件中。 “THRIFT_PORT”为ThriftServer实例的配置参数"hbase.regionserver.thrift.port"对应的值。
  • 场景说明 当不同的多个Manager系统下安全模式的集群需要互相访问对方的资源时,管理员可以设置互信的系统,使外部系统的用户可以在本系统中使用。每个系统用户安全使用的范围定义为“域”,不同的Manager系统需要定义唯一的域名。跨Manager访问实际上就是用户跨域使用。集群配置互信具体操作步骤请参考集群互信管理章节。 多集群互信场景下,以符合跨域访问的用户身份,使用从其中一个manager系统中获取到的用于Kerberos安全认证的keytab文件和principal文件,以及多个Manager系统各自的客户端配置文件,可实现一次认证登录后访问调用多集群的HBase服务。 以下代码在hbase-example样例工程的“com.huawei.bigdata.hbase.examples”包的“TestMultipleLogin”类中。
  • 场景说明 在同一个客户端进程内同时访问FusionInsight ZooKeeper和第三方的ZooKeeper时,为了避免访问连接ZooKeeper认证冲突,提供了样例代码使HBase客户端访问FusionInsight ZooKeeper和客户应用访问第三方ZooKeeper。 以下为“src/main/resources”目录下提供的与认证相关的配置文件。 zoo.cfg # The configuration in jaas.conf used to connect fi zookeeper.zookeeper.sasl.clientconfig=Client_new[1] # Principal of fi zookeeper server side. zookeeper.server.principal=zookeeper/hadoop.hadoop.com[2] # Set true if the fi cluster is security mode. # The other two parameters doesn't work if the value is false. zookeeper.sasl.client=true[3] [1] zookeeper.sasl.clientconfig:指定使用jaas.conf文件中的对应配置访问FusionInsight ZooKeeper; [2] zookeeper.server.principal:指定ZooKeeper服务端使用principal; [3] zookeeper.sasl.client:如果MRS集群是安全模式,该值设置为“true”,否则设置为“false”,设置为“false”的情况下,“zookeeper.sasl.clientconfig”和“zookeeper.server.principal”参数不生效。 jaas.conf Client_new { [4] com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="D:\\work\\sample_project\\src\\hbase-examples\\hbase-zk-example\\target\\classes\\conf\\user.keytab" [5] principal="hbaseuser1" useTicketCache=false storeKey=true debug=true; }; Client { [6] org.apache.zookeeper.server.auth.DigestLoginModule required username="bob" password="xxxxxx"; [7] }; [4] Client_new:zoo.cfg中指定的读取配置,当该名称修改时,需要同步修改zoo.cfg中对应配置。 [5] keyTab :指明工程使用的“user.keytab”在运行样例的主机上的保存路径,使用绝对路径便于更好定位文件位置。在Windows环境和Linux环境下配置时需注意区分不同操作系统路径书写方式,即“\\”与“\”差异。 [6] Client:第三方ZooKeeper使用该配置进行访问连接,具体连接认证配置由第三方ZooKeeper版本决定。 [7] password:密码明文存储存在安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。
  • 场景说明 在安全集群环境下,各个组件之间的相互通信不能够简单的互通,而需要在通信之前进行相互认证,以确保通信的安全性。HBase应用开发需要进行ZooKeeper和Kerberos安全认证。用于ZooKeeper认证的文件为“jaas.conf”,用于Kerberos安全认证文件为keytab文件和krb5.conf文件。具体使用方法在样例代码的“README.md”中会有详细说明。 jaas.conf文件请参考获取MRS应用开发样例工程,进入“src/hbase-examples/hbase-zk-example/src/main/resources/”路径下获取。 keytab和krb5.conf文件获取方法请参考准备MRS应用开发用户。 安全认证主要采用代码认证方式。支持Oracle JAVA平台和IBM JAVA平台。 以下代码在“com.huawei.bigdata.hbase.examples”包的“TestMain”类中。
  • 代码样例 Token认证机制支持API,用户可在二次开发样例的Producer()和Consumer()中对其进行配置。 Producer()配置的样例代码如下: public static Properties initProperties() { Properties props = new Properties(); KafkaProperties kafkaProc = KafkaProperties.getInstance(); // Broker地址列表 props.put(BOOTSTRAP_SERVER, kafkaProc.getValues(BOOTSTRAP_SERVER, "localhost:21007")); // 客户端ID props.put(CLIENT_ID, kafkaProc.getValues(CLIENT_ID, "DemoProducer")); // Key序列化类 props.put(KEY_SERIALIZER, kafkaProc.getValues(KEY_SERIALIZER, "org.apache.kafka.common.serialization.StringSerializer")); // Value序列化类 props.put(VALUE_SERIALIZER, kafkaProc.getValues(VALUE_SERIALIZER, "org.apache.kafka.common.serialization.StringSerializer")); // 协议类型:当前支持配置为SASL_PLAINTEXT或者PLAINTEXT props.put(SECURITY_PROTOCOL, kafkaProc.getValues(SECURITY_PROTOCOL, "SASL_PLAINTEXT")); // 服务名 props.put(SASL_KERBEROS_SERVICE_NAME, "kafka"); // 域名 props.put(KERBEROS_DOMAIN_NAME, kafkaProc.getValues(KERBEROS_DOMAIN_NAME, "hadoop.hadoop.com")); // 分区类名 props.put(PARTITIONER_NAME, kafkaProc.getValues(PARTITIONER_NAME, "com.huawei.bigdata.kafka.example.SimplePartitioner")); // 生成Token配置 StringBuilder token = new StringBuilder(); String LINE_SEPARATOR = System.getProperty("line.separator"); token.append("org.apache.kafka.common.security.scram.ScramLoginModule required").append(LINE_SEPARATOR); /** * 用户自己生成的Token的TOKENID */ token.append("username=\"PPVz2cxuQC-okwJVZnFKFg\"").append(LINE_SEPARATOR); /** * 用户自己生成的Token的HMAC */ token.append("password=\"pL5nHsIUODg5u0dRM+o62cOIf/j6yATSt6uaPBYfIb29dj/jbpiAnRGSWDJ6tL4KXo89dot0axcRIDsMagyN4g==\"").append(LINE_SEPARATOR); token.append("tokenauth=true;"); // 用户使用的SASL机制,配置为SCRAM-SHA-512 props.put("sasl.mechanism", "SCRAM-SHA-512"); props.put("sasl.jaas.config", token.toString()); return props; } Consumer()配置的样例代码如下: public static Properties initProperties() { Properties props = new Properties(); KafkaProperties kafkaProc = KafkaProperties.getInstance(); // Broker连接地址 props.put(BOOTSTRAP_SERVER, kafkaProc.getValues(BOOTSTRAP_SERVER, "localhost:21007")); // Group id props.put(GROUP_ID, kafkaProc.getValues(GROUP_ID, "DemoConsumer")); // 是否自动提交offset props.put(ENABLE_AUTO_COMMIT, kafkaProc.getValues(ENABLE_AUTO_COMMIT, "true")); // 自动提交offset的时间间隔 props.put(AUTO_COMMIT_INTERVAL_MS, kafkaProc.getValues(AUTO_COMMIT_INTERVAL_MS,"1000")); // 会话超时时间 props.put(SESSION_TIMEOUT_MS, kafkaProc.getValues(SESSION_TIMEOUT_MS, "30000")); // 消息Key值使用的反序列化类 props.put(KEY_DESERIALIZER, kafkaProc.getValues(KEY_DESERIALIZER, "org.apache.kafka.common.serialization.StringDeserializer")); // 消息内容使用的反序列化类 props.put(VALUE_DESERIALIZER, kafkaProc.getValues(VALUE_DESERIALIZER, "org.apache.kafka.common.serialization.StringDeserializer")); // 安全协议类型 props.put(SECURITY_PROTOCOL, kafkaProc.getValues(SECURITY_PROTOCOL, "SASL_PLAINTEXT")); // 服务名 props.put(SASL_KERBEROS_SERVICE_NAME, "kafka"); // 域名 props.put(KERBEROS_DOMAIN_NAME, kafkaProc.getValues(KERBEROS_DOMAIN_NAME, "hadoop.hadoop.com")); // 生成Token配置 StringBuilder token = new StringBuilder(); String LINE_SEPARATOR = System.getProperty("line.separator"); token.append("org.apache.kafka.common.security.scram.ScramLoginModule required").append(LINE_SEPARATOR); /** * 用户自己生成的Token的TOKENID */ token.append("username=\"PPVz2cxuQC-okwJVZnFKFg\"").append(LINE_SEPARATOR); /** * 用户自己生成的Token的HMAC */ token.append("password=\"pL5nHsIUODg5u0dRM+o62cOIf/j6yATSt6uaPBYfIb29dj/jbpiAnRGSWDJ6tL4KXo89dot0axcRIDsMagyN4g==\"").append(LINE_SEPARATOR); token.append("tokenauth=true;"); // 用户使用的SASL机制,配置为SCRAM-SHA-512 props.put("sasl.mechanism", "SCRAM-SHA-512"); props.put("sasl.jaas.config", token.toString()); return props; }
  • 操作步骤 登录管理控制台。 将鼠标移动至图标处,在下拉框中单击“专业服务”,默认进入“我的服务单”页面。 在目服务单“操作”列单击“申请交付”。 在弹出的“申请交付”页面,添加“项目名称”、“被测站点”信息,如图1所示,各参数说明如表1所示。 勾选“保存站点信息至后台”,再次选用该站点时不需要重复认证。站点信息会在用户注销华为云账号时删除。 图1 申请交付 表1 申请交付参数说明 参数 说明 配置样例 服务类型 购买认证测试中心的类型。 网站安全体检 项目名称 自定义项目名称。 名称长度为1~32个字符。 名称只能由中文字符、大小写英文字母、数字、下划线和中划线组成。 PSM-test 被测站点 输入需要进行认证测试中心的站点。 http(s)://www.example.com 备注 需要对服务单添加的备注信息。 - 在被测站点所在行的右侧,单击“认证”,认证站点的归属权。 请按照认证步骤,完成资料上传,上传成功后,单击“提交”。 站点认证成功后,华为安全专家将对被测的站点提供一对一的认证服务。 图2 站点认证 当申请交付服务单信息后,华为安全专家将在1个工作日内联系您,与您沟通确定测试内容并审核您的资质。审核通过后,系统线下将订单发送给权威第三方机构,权威第三方机构根据您订单中描述检认完成后,将生成的体检报告交由华为安全专家团队审核,审核认证测试中心完成。 查看服务单后续进度,详细操作,请查看:查看服务单信息。
  • 操作步骤 登录管理控制台。 将鼠标移动至图标处,在下拉框中单击“专业服务”,默认进入“我的服务单”页面。 在目服务单“操作”列单击“查看”,服务单状态说明如表1所示。 表1 服务单状态参数说明 参数名称 说明 待处理 您购买认证测试中心,服务单付款成功,服务单条状态为“待处理”。 处理中 您购买等保安全,服务单付款成功,服务单状态为“处理中”。 服务取消 华为云终止本次认证测试中心服务,系统将服务单状态更新为“服务取消”。 待用户验收 认证测试中心服务报告由华为安全专家审核通过后,系统将服务单状态更新为“待用户验收”。 已完成 认证测试中心服务完成后,您对本次认证测试中心进行验收后,系统将服务单状态更新为“已完成”。 服务单列表展示了您名下的所有服务单,以上服务单的状态说明为认证测试中心服务单的状态说明。 详情页面包含以下内容: 基础信息:服务单的产品信息、联系人信息、服务内容等。 您可以单击,修改联系人电话和邮箱。 服务单完成信息:服务总结、服务报告。 服务评价:方案完善度、实施专业性、响应及时性。 处理日志:服务单的历史处理进展。 对于服务单的过程交付件,您可以单击“下载”来获取。 “服务单完成信息”和“服务评价”区域在认证测试中心服务完成后,您进行验收时呈现。
  • 操作步骤 登录管理控制台。 将鼠标移动至图标处,在下拉框中单击“专业服务”,默认进入“我的服务单”页面。 在目服务单“操作”列单击“验收”。 在“服务单完成信息”区域了解服务单的完成情况。 您可以单击“下载”获取详细的服务报告。 验收服务单。 如果服务单满足交付要求,请单击“立即验收”。 单击“立即验收”后,CTC服务默认此服务单已交付完成,验收后此服务单将不再提供服务。 如果服务单不满足交付要求,请单击“验收延期”,并填写延期原因。 您需要在收到验收请求后于10个自然日内完成验收。如您在此期间未验收,系统将自动进行验收。 延期验收,每延期一次,验收时长将增加10个工作日,最多可延期三次。
  • 准备环境 已获取API的域名、请求url、请求方法、AppKey和AppSecret等信息,具体参见认证前准备。 获取并安装Python安装包(可使用2.7.9+或3.X),如果未安装,请至Python官方下载页面下载。 Python安装完成后,在命令行中使用pip安装“requests”库。 pip install requests 如果pip安装requests遇到证书错误,请下载并使用Python执行此文件,升级pip,然后再执行以上命令安装。 获取并安装IntelliJ IDEA,如果未安装,请至IntelliJ IDEA官方网站下载。 已在IntelliJ IDEA中安装Python插件,如果未安装,请按照图1所示安装。 图1 安装Python插件
  • 调用API示例 在工程中引入apig_sdk。 1 2 3 from apig_sdk import signer import requests import os 生成一个新的Signer,填入AppKey和AppSecret。 1 2 3 4 5 6 7 8 # 认证用的ak和sk编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; # 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量SDK_AK和SDK_SK。 ak = os.environ("SDK_AK"); sk = os.environ("SDK_SK"); sig = signer.Signer() sig.Key = ak sig.Secret = sk 生成一个Request对象,指定方法名、请求uri、header和body。 1 2 3 4 r = signer.HttpRequest("POST", "https://c967a237-cd6c-470e-906f-a8655461897e.apigw.cn-north-1.huaweicloud.com/app1?a=1", {"x-stage": "RELEASE", "name": "value"}, "body") 进行签名,执行此函数会在请求参数中添加用于签名的X-Sdk-Date头和Authorization头。然后为请求添加x-Authorization头,值与Authorization头相同。 1 2 sig.Sign(r) r.headers["x-Authorization"] = r.headers["Authorization"] 访问API,查看访问结果。 1 2 3 resp = requests.request(r.method, r.scheme + "://" + r.host + r.uri, headers=r.headers, data=r.body) print(resp.status_code, resp.reason) print(resp.content)
  • 用户角色介绍 解决方案工作台角色 解决方案工作台角色,分为企业管理员和普通用户。 企业管理员:企业管理员拥有运营中心的相关权限,可以在运营中心管理本企业的用户,还可以进行本企业报表的查看、自定义验证效率分析等运营管理操作。 普通用户:包含项目经理、架构师、测试工程师,用于标记该人员的能力模型。 解决方案工作台空间角色 解决方案工作台空间角色,指解决方案工作台用户在具体的某个解决方案工作台空间内的角色,空间之间相互隔离,某个空间内的角色不影响其他空间。 管理员:空间管理员,可以对本空间内的成员进行管理。 项目经理:管理空间、空间成员、测试计划制定、方案/需求/用例/报告审核等。 架构师:在解决方案工作台上进行解决方案注册、设计与审核,测试需求创建,测试问题处理等。 测试工程师:测试用例设计、执行,测试资源开通,测试问题处理,测试报告生成等。 访客:在邀请用户进入空间时可设置该用户为访客角色,访客角色用户在该空间内仅支持查看,不允许任何编辑操作。 更多关于解决方案工作台的角色介绍请参考用户访问权限,您可以参考设置本企业企业管理员添加用户、为用户设置角色。
  • 认证测试工作计划参考 为了保证认证测试高效快速完成,请提前安排研发人力投入,支持测试和问题修复。请在认证测试开始前理解测试流程并制定合理的计划,以下测试工作计划仅供参考。 表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)执行33条手工安全测试用例。 2)API商品使用token或者动态签名方式认证,手工用例中的会话、密码相关用例不涉及。 WEB 扫描 1)基于解决方案工作台,完成安全自动化扫描用例(安全自动化用例可通过“验证中心”使用用例模板或“向导式需求与用例生成”功能创建)。 2)修复要求请参考扫描结果与修复建议。 主机扫描 二进制扫描 可靠性测试 1)根据可靠性要求表(SaaS可靠性要求、License可靠性要求),部署高可用测试环境(数据高可用、应用高可用、安全服务)及数据备份。 2)根据可靠性要求表设计可靠性验证用例,需要测试各故障点的服务。 3)API商品对应的后端服务可靠性要求跟SaaS的可靠性要求保持一致。 集成测试 1)结合方案架构图,对方案中涉及到的华为云服务进行集成路径的连通性测试,确保核心业务场景中的业务流、数据流与所依赖的华为云服务能够端到端打通。 覆盖所有涉及到的云服务及集成路径。 2)如涉及硬件商品,需选取3-6个解决方案核心业务场景,进行业务流、数据流的连通性测试。 认证测试包含的功能测试、性能测试、安全测试、可靠性测试、集成测试已上架用例模板,请根据产品实际选择并编辑后使用,使用操作请参见设计测试用例文档。 涉及硬件商品,只需关注上表的功能测试、性能测试、集成测试硬件商品相关要求。 认证测试基于“解决方案工作台”操作完成,点击解决方案工作台访问链接访问,建议使用Chrome浏览器访问。解决方案工作台是一个支撑伙伴快速进行解决方案构建和验证的自助化工具平台,更多关于解决方案工作台的介绍参考什么是解决方案工作台。