单点登录


单点登录

提供标准单点登录接口。员工在企业办公系统门户上登录后,通过该接口跳转到华为云数字化差旅时可实现免登录预定操作。消息流程如下:

接口URL

生产环境: https://openapi.hwht.com/napi/auth/url/loginopen in new window

测试环境: https://openapi-uat.hwht.com/napi/auth/url/loginopen in new window

以GET请方式调用。对应HttpBody中参数通过url传递,具体参数如下:

输入参数

参数名参数说明必选参数类型长度值举例备注
msgId消息idYString1281000120150511190411000001企业编码+消息方向+YYYYMMDDHHMMSS+NNNNNN
corpCode企业账号NString1000企业账号 传入时登录到对应企业;未传入时根据tenantUserId在所对接的租户下匹配用户,当tenantUserId在租户下多家企业任职时,enterpriseTrId和orderId参数不生效
tenantUserId租户用户idYStringHW_000001租户用户id
enterpriseTrId企业客户系统的审批单编号NStringTA0315012116281300028客户审批系统的审批单号。传空时根据travelType跳转至因公因私。
lang语种NStringCN:中文(默认),EN:英文**目前对外仅提供中文版。**该字段不提供则默认跳转到中文页面
serviceType服务类型NStringHOME:首页,FLIGHT_BOOKING:机票预订,HOTEL_BOOKING:酒店预订,PERSON_CENTER:个人中心,ORDER_CENTER:订单中心,INTER_FLIGHT_BOOKING:国际机票预订,INTER_HOTEL_BOOKING:国际酒店预订,TRAIN_BOOKING:国内火车票预订,HOTEL_AFTER_BOOKING:离店确认,ORDER_DETAIL:订单详情,CAR_BOOKING:用车预订,TMC:预订管控配置传空时默认进入首页
orderId订单IdNStringF:机票,H:酒店,T:火车票,I:国际机票,G:国际酒店根据订单Id的前缀跳转到对应订单详情
travelType出行方式NStringBUSINESS:因公出行,PRIVATE:因私出行传空时员工自行在系统选择因公或因私出行;仅预定页面有效
source来源NString登录来源type(自定义)
redirectUrl重定向地址NString仅支持站内地址重定向当redirectUrl有值时,优先跳转redirectUrl;为空则按serviceType参数进行跳转
redirectSite跳转站点类型NStringPC:PC端,H5:H5端传空时默认为PC

构造请求

单点登录是GET请求,所以技术要点中放在消息头中Authorization的参数通过url传递。

待签名的字符串中 CanonicalQueryString 取输入参数中字段和值,url中查询参数先拼接CanonicalQueryString的值,参数顺序需要保持和url中一致,之后拼接Authorization的参数。

举例说明:

  • 原始请求url

https://openapi.hwht.com/napi/auth/url/login?msgId=0008120240617143030100010&corpCode=0008&tenantUserId=test0001&lang=CN&serviceType=FLIGHT_BOOKING&travelType=BUSINESS&source=default&redirectSite=PC

  • 认证秘钥
secretKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
accessKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
  • 待签名字符串
GET + '\n ' +
/napi/auth/url/login + '\n' +
20241106T094914Z + '\n ' +
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + '\n' +
msgId=0008120240617143030100010&corpCode=0008&tenantUserId=test0001&lang=CN&serviceType=FLIGHT_BOOKING&travelType=BUSINESS&source=default&redirectSite=PC + '\n'
  • 得到签名signature

e14f72eb3be2fe07178ac27240b8c789b5742ada41f8cbf04bdf34629bfdbec5

  • 最终实际请求url

https://openapi.hwht.com/napi/auth/url/login?msgId=0008120240617143030100010&corpCode=0008&tenantUserId=test0001&lang=CN&serviceType=FLIGHT_BOOKING&travelType=BUSINESS&source=default&redirectSite=PC&type=AKSK-HMAC-SHA256&authId=xyz&accessKey=B4rmSF2by5EPE8t3SY6rcmidtbdXhzCd&date=20241106T094914Z&signature=e14f72eb3be2fe07178ac27240b8c789b5742ada41f8cbf04bdf34629bfdbec5