认证安全

账号申请#

  1. 向华住侧邮件提交申请clientId以及secretdistributorId,用于标明<调用方>身份信息。

  2. 申请时需要提供以下信息:

  • (1)调用方:XXX分销商
  • (2)测试环境IP来源:测试环境访问<华住认证中心>时的IP地址,可以支持IP范围段
  • (3)生产环境IP来源:测试环境访问<华住认证中心时的IP地址,可以支持IP范围段
  1. 华住侧审核通过后,提供测试环境的clientIdsecret

  2. 研发对接完成后,提供生产环境的clientIdsecret。具体流程见合作上线流程

  3. 请保管好clientIdsecret,避免泄露

接口认证#

采用OAuth2认证方式

设计遵循IETF国际互联网工程任务组公布OAuth2基本定义 https://tools.ietf.org/html/rfc6749

使用说明#

step 1. 客户端使用clientId与secret请求生成token#

  • token有效期默认为3600秒,可以申请最大有效期7200秒。
  • token失效后需要重新申请,在到期前申请新token。
  • 每次申请新Token将会使旧Token失效,为避免此场景下并行请求时旧token失效的问题,旧token不会立刻失效(缓冲buffer 目前120s)。
  • 若多业务多实例应用,需要实现中控管理从而在多实例间共享token->建议在提前(180~300内随机秒数)进行刷新,避免token在各业务实例中竞争导致的损耗。

step 2. 客户端携带token信息请求业务资源接口#

token传输在请求头内,使用Bearer Authentication(Token Authentication)

示例#

1) 获取Token,HTTP头中的“Authorization: Basic ”(←最后有空格)后的凭证为:clientId:secret 的字符串,以Base64形式格式化得到

POST https://****<authservicedomain>****/oauth/token?scope=ALL&grant_type=client_credentials
Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

获取结果:

{"access_token":"abc********123","token_type":"Bearer","expires_in":3600,"scope":"ALL"}

2) 携带Token设置为Authorization: Bearer 对应值,调用业务接口,调用方可以通过<华住认证中心>提供接口查看Token有效性以及剩余时间(暂未开放)

POST https://***<bizdomain>***/test
Authorization: Bearer abc********123

协议安全#