华为云用户手册

  • 请求示例 手机号短信验证码二次认证。手机号为12345678901,验证码为123456。 POST https://{domain_name}/api/v2/sdk/mfa/sms X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-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 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-state-token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "mobile": "12345678901", "verify_code": "123456" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 status String 登录流程状态标识。 枚举值: SUC CES S:登录成功 ACCESS_DENIED:拒绝访问 session_token String 用户session_token,可使用该token调用单点登录接口获取sso_ticket,通过sso_ticket可以获取用户信息。 id_token String 本质上是一个JWT Token,包含了用户身份信息,默认2小时有效,支持可配置。 expire Integer session_token有效期,单位为秒,有效期内可以使用session_token获取ticket。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误详情。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户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。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-state-token 是 String 用户带有状态的令牌。登录相关接口返回为二次认证场景时,会返回该state_token。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用 域名 {common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 mobile 是 String 接收验证码的手机号。 verify_code 是 String 接收到的验证码。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 status String 返回结果。 枚举值: SUCCESS:登录成功 ACCESS_DENIED:拒绝访问 expire Integer session_token有效期,单位为秒,有效期内可使用session_token获取ticket。 session_token String 用户session_token,可使用该token调用单点登录接口获取sso_ticket,通过sso_ticket可以获取用户信息。 id_token String 本质上是一个JWT Token,包含了用户身份信息,默认2小时有效,支持可配置。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误详情。
  • 请求示例 使用手机号和短信验证码注册用户。用户名为zhangsan,姓名为张三,手机号为12345678901,短信验证码为1234,邮箱为12345678901@example.com,密码为Q******3。自定义扩展字段年龄值为18。 POST https://{domain_name}/api/v2/sdk/register/mobile-verify-code X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-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 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "user_name": "zhangsan", "name": "张三", "mobile": "12345678901", "verify_code": "1234", "email": "12345678901@example.com", "pwd": "Q******3", "head_img": " https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTIQ8QOTSn3y4cYHLlMC3sv6RCBmeMkxtOog47Zr3v2Afbqc2bmP0WibUIUskX39eJlJ", "attr_gender": "male", "attr_birthday": "2022-02-17", "attr_nick_name": "张三", "first_name": "zhangsan", "middle_name": "zhangsan", "last_name": "zhangsan", "extension": { "age": "18" } }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户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。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用域名{common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 user_name 否 String 用户名。 name 否 String 姓名。 mobile 是 String 手机号。 verify_code 是 String 短信验证码。 email 否 String 邮箱。 pwd 否 String 密码。 head_img 否 String 头像,填写url地址。 attr_gender 否 String 性别。 枚举值: unknown:保密 male:男性 female:女性 attr_birthday 否 String 生日,格式为yyyy-MM-dd。 attr_nick_name 否 String 昵称。 first_name 否 String 名字。 middle_name 否 String 中间名。 last_name 否 String 姓氏。 extension 否 Object 自定义扩展属性。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户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。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用域名{common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 user_name 是 String 用户名。 password 是 String 密码。
  • 请求示例 统一用户密码登录。使用用户密码登录系统,用户名为test01,密码为123456。 POST https://{domain_name}/api/v2/sdk/auth X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-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 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "user_name": "test01", "password": "123456" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 status String 登录流程状态标识。 枚举值: SUCCESS:登录成功 PASSWORD_WARN:密码快过期,需要调用密码过期强制修改密码接口设置密码 PASSWORD_EXPIRED:密码已过期,需要调用密码过期强制修改密码接口设置密码 ACCESS_DENIED:拒绝访问 MFA_AUTH:登录成功但需要进行二次认证,需要调用根据state_Token获取手机号接口、手机和短信验证码二次认证接口进行二次认证 session_token String 用户session_token,可使用该token调用单点登录接口获取sso_ticket,通过sso_ticket可以获取用户信息。 id_token String 本质上是一个JWT Token,包含了用户身份信息,默认2小时有效,支持可配置。 expire Integer session_token有效期,单位为秒,有效期内可以使用session_token获取sso_ticket。 state_token String 用户带有状态的令牌。 data String 返回说明。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误详情。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户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。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用域名{common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 old_password 是 String 用户的老密码。 new_password 是 String 设置的新密码。
  • 请求示例 个人修改密码。 POST https://{domain_name}/api/v2/sdk/pwd/change X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-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 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "old_password": "P@ssW0rd", "new_password": "P@ssW0rd123" }
  • 请求示例 手机号密码登录。手机号为12345678901,密码为123456。 POST https://{domain_name}/api/v2/sdk/login/mobile-pwd X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-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 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "mobile": "12345678901", "password": "123456" }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户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。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用域名{common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 mobile 是 String 手机号。 password 是 String 密码。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 status String 登录流程状态标识。 枚举值: SUCCESS:登录成功 PASSWORD_WARN:密码快过期,需要调用密码过期强制修改密码接口设置密码 PASSWORD_EXPIRED:密码已过期,需要调用密码过期强制修改密码接口设置密码 ACCESS_DENIED:拒绝访问 MFA_AUTH:登录成功但需要进行二次认证,需要调用根据state_Token获取手机号接口、手机和短信验证码二次认证接口进行二次认证 session_token String 用户session_token,可使用该token调用单点登录接口获取sso_ticket,通过sso_ticket可以获取用户信息。 id_token String 本质上是一个JWT Token,包含了用户身份信息,默认2小时有效,支持可配置。 expire Integer session_token有效期,单位为秒,有效期内可以使用session_token获取sso_ticket。 state_token String 用户带有状态的令牌。 data String 返回说明。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误详情。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户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。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用域名{common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 email 是 String 接收验证码的邮箱。 verify_code 是 String 短信验证码。 password 是 String 设置的新密码。
  • 请求示例 通过邮箱找回密码。 POST https://{domain_name}/api/v2/sdk/pwd/update-by-mobile X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-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 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "email": "123@example.com", "verify_code": "123456", "password": "P@ssW0rd" }
  • 请求示例 用户注销。 GET https://{domain_name}/api/v2/sdk/logoff X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-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 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-signature:D0JeOUuVqU8Ixvl0xrmewQRk4AuGZrtk1RfBxueNKUrNPpgSbXrYnzw... X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户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。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-signature 是 String 加密数据为session_token=xxx×tamp=xxx&nonce=xxx,其中:session_token为会话凭证,timestamp表示当前时间戳,nonce表示当前时间戳的16进制,加密方式为RSA公钥加密。当前时间戳可调用获取服务器时间接口获取,加密公钥可调用获取公钥接口获取。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用域名{common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户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。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用域名{common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 email 是 String 邮箱。 type 是 String 发送场景。 枚举值: FORGET_PWD_EMS:找回密码 captcha_token 是 String 图形验证码凭证。
  • 请求示例 发送邮件验证码,给指定邮箱123@example.com用于忘记密码操作,图形验证码校验通过凭证为71dd26999e314f9abb0c635336976635---{"x":237.0,"y":5.0}。 POST https://{domain_name}/api/v2/sdk/email/send X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-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 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "email": "123@example.com", "type": " FORGET_PWD_EMS ", "captcha_token": "71dd26999e314f9abb0c635336976635---{\"x\":237.0,\"y\":5.0}" }
  • 请求示例 邮箱密码登录。邮箱为123@example.com,密码为123456。 POST https://{domain_name}/api/v2/sdk/login/email-pwd X-operating-sys-version: Android 10 X-device-fingerprint: 156aysdna213sac X-device-ip: 10.10.10.1 X-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 X-L: zh X-client-id: DRrYIqauawN0I8myTMoDTPys6ezGZxnm X-tenant-id: 08f770f51f80d2f40f38c00cb199fd21 { "email": "123@example.com", "password": "123456" }
  • 请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 该字段内容填为“application/json;charset=utf8”。 X-operating-sys-version 是 String 调用方操作系统版本,例如:Android 10。 X-device-fingerprint 是 String 调用方设备指纹,例如:156aysdna213sc50。 X-device-ip 否 String 调用方IP,例如:10.10.10.1。 X-agent 是 String 用户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。 X-L 否 String 用于国际化语言设置,例如:zh。 X-client-id 是 String 应用标识,注册应用后分配的ClientId。 X-tenant-id 否 String 租户id,ISV应用调用则为必填,需要将{domain_name}换成ISV通用域名{common_domain},请求Header参数中需要指定对应租户的tenant_id,并将X-client-id换成ISV应用模板的client_id。 表2 请求Body参数 参数 是否必选 参数类型 描述 email 是 String 邮箱。 password 是 String 密码。
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 status String 登录流程状态标识。 枚举值: SUCCESS:登录成功 PASSWORD_WARN:密码快过期,需要调用密码过期强制修改密码接口设置密码 PASSWORD_EXPIRED:密码已过期,需要调用密码过期强制修改密码接口设置密码 ACCESS_DENIED:拒绝访问 MFA_AUTH:登录成功但需要进行二次认证,需要调用根据state_Token获取手机号接口、手机和短信验证码二次认证接口进行二次认证 session_token String 用户session_token,可使用该token调用单点登录接口获取sso_ticket,通过sso_ticket可以获取用户信息。 id_token String 本质上是一个JWT Token,包含了用户身份信息,默认2小时有效,支持可配置。 expire Integer session_token有效期,单位为秒,有效期内可以使用session_token获取sso_ticket。 state_token String 用户带有状态的令牌。 data String 返回说明。 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码。 error_msg String 错误详情。
  • 密文解密过程 对密文进行BASE64解码。 byte[] encryptStr = Base64.getDecoder().decode(data); 使用AESKey进行解密。 Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); SecretKeySpec secretKey = new SecretKeySpec(加密密钥.getBytes(StandardCharsets.UTF_8), "AES"); cipher.init(2, secretKey); byte[] bytes = cipher.doFinal(encryptStr); 去掉rand_msg头部的16个随机字节,剩余的部分即为明文内容msg。 String dataStr = StringUtils.split(new String(bytes, StandardCharsets.UTF_8), "&")[1];
  • 签名校验/加解密术语 表1 术语 术语 说明 signature 消息签名,用于验证请求是否来自 OneAccess ,以防攻击者伪造。签名算法为HMAC-SHA256 + Base64。 AESKey AES算法的密钥,加密算法为AES/GCM/NoPadding + Base64。 msg 明文消息体,格式为JSON。 encrypt _msg 明文消息msg加密处理并进行Base64编码后的密文。
  • 签名校验 为了让企业应用确认事件推送来自OneAccess,OneAccess将事件推送给企业应用回调服务时,请求body体中包含请求签名并以参数signature标识,企业应用需要验证此参数的正确性后再解密,验证步骤如下: 计算签名。 计算签名由签名密钥、Nonce值(nonce)、时间戳(timestamp)、事件类型(eventType)、消息体(data)5部分组成,中间使用&进行连接。采用HMAC-SHA256 + Base64算法进行加密。以下为Java语言签名示例: String message = nonce + "&" + timestamp + "&" + eventType + "&" + data; Mac mac = Mac.getInstance("HmacSHA256"); SecretKeySpec secretKey = new SecretKeySpec(签名密钥.getBytes(StandardCharsets.UTF_8), "HmacSHA256"); mac.init(secretKey); String newSignature = Base64.getEncoder().encodeToString(mac.doFinal(message.getBytes(StandardCharsets.UTF_8))); 比较计算的签名cal_signature与请求参数signature是否相等,相等则表示验证通过。 企业应用按照要求返回响应消息格式。
  • 明文加密过程 拼接明文字符串。明文字符串由16个字节的随机字符串、明文msg拼接组成,中间使用&进行连接。以下为Java语言示例: String dataStr = RandomStringUtils.random(16, true, false) + "&" + data; 对拼接后的明文字符串使用AESkey加密后,再进行Base64编码,获得密文encrypt_msg。以下为Java语言示例: Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding"); SecretKeySpec secretKey = new SecretKeySpec(加密密钥.getBytes(StandardCharsets.UTF_8), "AES"); cipher.init(1, secretKey); byte[] bytes = dataStr.getBytes(StandardCharsets.UTF_8); String ecnryptStr = Base64.getEncoder().encodeToString(cipher.doFinal(bytes));
  • 概述 Serverless GPU是一种高度灵活、高效利用、按需分配GPU计算资源的新兴云计算服务。GPU能力Serverless化,通过提供一种按需分配的GPU计算资源,在一定范围内有效地解决原有GPU长驻使用方式导致的低资源利用率、高使用成本和低弹性能力等痛点问题。本文将介绍Serverless GPU的详细功能和优势。(目前该功能仅支持华东-上海一) 传统GPU长驻使用方式存在许多问题,例如,需要提前规划好资源需求并容易造成资源浪费。而Serverless GPU则提供了一种更加灵活的方式来利用GPU计算资源,用户只需选择合适的GPU型号和计算资源规模,就可以帮助用户有效地解决GPU长驻使用方式导致的资源浪费、高成本、低弹性等问题,为用户提供更加便捷、高效的GPU计算服务,有效承载AI模型推理、AI模型训练、音视频加速生产、图形图像加速等加速工作负载。 GPU函数主要使用于:仿真、模拟、科学计算、音视频、AI和图像处理等场景下,使用GPU硬件加速,从而提高业务处理效率。 表1 GPU函数规格 卡型 vGPU 显存(GB) vGPU 算力(卡) 特点描述 Tesla 系列 T4 卡型 1~16 取值说明:必须是整数。 说明:由系统自动分配,无需手动配置 Tesla T4是一款独特的GPU产品,专为AI推理工作负载而设计,如处理视频,语音,搜索引擎和图像的神经网络。Tesla T4配备16GB GDDR6,GPU中集成320个Turing Tensor Core和2560个Turing CUDA Core,这款全新GPU具有突破性的性能,以及FP32/FP16/INT8/INT4等多种精度的运算能力,FP16的峰值性能为65T,INT8为130T,INT4为260T。 图1 GPU云产品选型决策指引 父主题: Serverless GPU使用介绍
  • 功能优势 函数计算为准实时推理工作负载提供以下功能优势: 原生Serverless使用方式 函数计算平台默认提供的按量GPU实例使用方式,会自动管理GPU计算资源。根据业务的请求数量,自动弹性GPU实例,最低0个实例,最大可配置实例数量。 规格最优 函数计算平台提供的GPU实例规格,根据业务需求,选择卡型并配置使用的显存和内存的大小,为您提供最贴合业务的实例规格。 成本最优 函数计算平台提供的按量付费能力,对于低GPU资源利用率的工作负载,降本幅度可达70%以上。
  • 敏感操作 关闭验证码验证功能后,在伙伴中心进行敏感操作时,将通过手机短信或者邮箱再次确认操作者的身份,进一步提高账号安全性,有效保护您安全操作相关功能。 具体影响的敏感操作如下表所示: 伙伴类型 敏感操作 政府类伙伴 发放/回收现金券 发放/回收代金券 解决方案提供商 余额支付(为客户代支付订单) 为客户调账 发放/回收代金券 为云商店商品订单调价(仅严选用户) 伙伴发起解除关联或切换关联类型事件 处理客户发起的解除关联事件 经销商子客户 处理伙伴发起的解除关联或切换关联类型事件 同意或取消伙伴发起的代客授权事件 华为云总经销商(一级经销商) 余额支付(为客户代支付订单) 为客户调账 发放/回收代金券 发放/回收代金券额度 为云商店商品订单调价(仅严选用户) 伙伴发起解除关联或切换关联类型事件 处理客户发起的解除关联事件 云经销商 余额支付(为客户代支付订单) 为客户调账 发放/回收代金券 伙伴发起解除关联或切换关联类型事件 处理客户发起的解除关联事件 父主题: 附录
共100000条