计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
华为云Astro轻应用
华为云Astro大屏应用
开源治理服务 CodeArts Governance
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

认证鉴权

更新时间:2025-03-21 GMT+08:00

华为云Astro轻应用提供的所有接口都需要通过认证之后才可以访问。认证方式主要分以下两类:

  • 在请求消息头上,设置“access-token”
  • 在请求消息头上,设置“Authorization”

两类方式都是通过不同的认证接口,来获取到Token。Token在计算机系统中代表令牌(临时)的意思,拥有Token代表拥有某种权限。Token认证是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。

平台用户分以下几类,不同类别的用户访问接口的权限会有所不同:

  • 平台用户 (User):一般对应运行环境、开发环境用户,用于管理开发应用。

    使用的认证机制为:“账号密码登录认证”、“单点登录认证”和“OAuth 2.0鉴权登录认证”。

  • 业务用户(Portal User):业务用户是访问华为云Astro轻应用提供的业务服务的用户。

    使用的认证机制为:“账号密码登录认证”、“单点登录认证”和“OAuth 2.0鉴权登录认证”。

  • 匿名用户 (Guest):对于该类用户,平台接口都需要进行校验,未登录前使用Guest用户身份来访问平台接口,一般会赋予最小的权限。

    使用的认证机制为:“OAuth 2.0鉴权登录认证”。

获取Token的认证接口,如表1所示。

表1 认证接口说明

接口

说明

生成Token的用户

是否可以直接访问接口

账号密码登录

通过账号密码直接访问登录接口,成功校验则返回“access-token”,写到Cookies上。

平台用户、业务用户

单点登录(“CAS”协议)

支持CAS单点登录方式,通过CAS server登录后携带ticket重定向到华为云Astro轻应用。 华为云Astro轻应用后台拿ticket到CAS Server校验ticket合法性,得到ticket对应的账号(可选)、用户信息,然后校验该用户是否存在,在指定了账号的情况下,如果该用户不存在,则创建对应用户; 没有指定租户的情况下该用户不存在则直接报错,并返回到CAS Server。

成功验证用户身份后,则生成Session写到cookie上, 重定向到指定页面。

平台用户、业务用户

使用OAuth 2.0的客户端(即client_credentials)鉴权模式

根据鉴权ID和鉴权密钥,调用获取用户Token的接口,来获取access_token。匿名用户一般通过该方式来获取Token。

具体操作,请参见客户端模式

平台用户、匿名用户

使用OAuth 2.0的授权码(即authorization_code)鉴权模式

根据鉴权ID、鉴权密钥、授权码调用获取用户Token接口来获取access_token。后续需要通过access_token获取授权用户信息。

具体操作,请参见授权码模式

平台用户、匿名用户

供华为WeLink单点登录

华为云Astro轻应用开发的轻应用或者We码支持WeLink登录,在WeLink打开轻应用或者We码可以实现免登访问。

业务用户

业务用户登录(服务编排中PORTALUSERLOGIN公式)

指定业务用户名,使用服务编排的“PORTALUSERLOGIN”公式来登录。

业务用户

否(只能在服务编排中访问接口)

业务用户通过RefreshToken获取新的Token

可以通过配置内置系统参数“bingo.service.refreshtoken.enable”为“是”的方式来选择开启RefreshToken特性。开启后,业务用户通过服务编排的“PORTALUSERLOGIN”公式登录华为云Astro轻应用时,会在Cookies中多返回一个“refresh-token”参数。可再通过发起请求“POST https://华为云Astro轻应用域名/baas/auth/v1.0/refreshtoken”来获取一个新的Token(调该接口时需要在请求消息头上设置参数“Content-Type”值为“application/json”,请求消息体中设置参数“grant_type”值为“refresh_token”,“refresh_token”值为Cookies中返回的“refresh-token”参数值)。原有的Token不管有没有失效,都会被置成失效状态。一般情况下,“refresh-token”的有效期会比较长,在用户的权限配置中可通过配置“刷新凭证时长”来控制其有效期。

具体操作,请参见业务用户通过RefreshToken获取新的Token

业务用户

JWT(JSON Web Tokens)鉴权方式

根据其他方式生成的“access-token”,可以通过jwt接口换成一个JWT形式的token。一般用于华为云Astro轻应用内部服务之前的相互访问。 内部服务会在etcd上配置一个“SecretKey”,内部网元读取“SecretKey”来解JWT得到用户信息。

平台用户

供CAS Server使用的账号密码登录方式

华为云Astro轻应用自身的CAS Server没有独立的持久化,使用的Authcenter模块的用户体系,由Authcenter提供一个接口来做用户鉴权。

sequenceDiagram
	participant CAS Server
	participant Authcenter
	
	CAS Server ->> Authcenter: 通过账号密码访问调用 Authcenter 认证接口
	Authcenter -->> CAS Server: 返回认证结果,成功则包含用户账号信息
	CAS Server ->> CAS Server: 生成 TCG
	CAS Server ->> Authcenter: 携带ticket 重定向到 Authcenter

平台用户

OAuth鉴权

华为云Astro轻应用平台提供了两种授权模式进行OAuth鉴权,分别是“客户端模式”和“授权码模式”,两种授权模式适用的鉴权范围有所不同。
  • 通过“客户端模式”获取的access-token,可用于调用API接口时进行鉴权,使用时在请求消息头上设置“access-token”。
    1. 在华为云Astro轻应用服务控制台的“主页”中,单击“进入首页”,进入应用开发页面。
    2. 单击,选择环境管理 > 环境配置,进入华为云Astro轻应用环境配置页面。
    3. 在左侧导航栏中,选择“集成连接 > OAuth”菜单,新建OAuth管理。
      图1 新建客户端模式OAuth管理
      • 第三方通过OAuth认证接入系统后,将以选择的用户身份操作数据,所以需要确保选择的用户具有调用API的相关权限。
      • 选择的用户的权限不能为匿名用户权限“Anonymous_User_Profile”,因为Guest用户没有访问API的权限,因此无法配置OAuth。
    4. 在OAuth管理列表中,单击该鉴权所在行的,下载密钥文件。
      表2 密钥文件参数

      参数

      参数说明

      username

      当“授权类型”配置为“客户端模式”时,密钥文件会包含该参数,为创建OAuth时选择的用户名。

      client_id

      鉴权的客户端ID。

      client_secret

      鉴权密钥。

    5. 根据鉴权客户端ID和鉴权密钥,通过Post请求调用接口“https://华为云Astro轻应用域名/baas/auth/v1.0/oauth2/token”,获取access_token。
      表3 请求参数说明

      参数名

      类型

      必选(M)/可选(O)

      参数位置

      参数含义

      grant_type

      String

      M

      Body

      授权模式,OAuth2.0中的grant_type字段的取值。

      client_credentials(即客户端模式)

      client_id

      String

      M

      Body

      鉴权的客户端ID,可在OAuth查看。

      从上一步骤获取。

      client_secret

      String

      M

      Body

      鉴权密钥,可在OAuth查看。

      URL查询参数中,请勿配置client_secret,建议将其配置到请求体中。

      从上一步骤获取。

      redirect_url

      String

      O

      Body

      重定向URL。

      http://www.example.com

      locale

      String

      O

      Body

      语言。

      en_US

      表4 返回参数说明

      参数

      参数说明

      access_token

      认证后可信任的Token凭证。

      expires_in

      当前access_token的有效期,单位:秒。

      token_type

      access_token类型。

      图2 接口调用结果

      当接口调用出错时,会返回错误码“400”及错误信息说明,错误响应的Body体格式如下所示。

      {
          "error": "unauthorized_client",
          "error_description": "The client is not authorized to request a token using this method."
      }

      其中,error表示错误提示,error_description表示错误描述信息。

    6. 将Headers中的access-token参数,设置为上一步得到的access_token,成功调用自定义的API接口。
      图3 成功调通API接口

      返回消息体中包含三种参数,“resCode”和“resMsg”参数代表此次请求的状态码及请求信息,您可以通过自定义错误码信息来设置请求错误时的返回信息,具体参考错误码。“result”参数为调用的接口返回的数据,与查看API信息时接口“返回消息”内容一致。

  • 通过“授权码模式”获取的access-token,可用于获取用户信息时进行鉴权,使用时在请求消息头上设置“Authorization”。
    1. 在华为云Astro轻应用服务控制台的主页中,单击“进入首页”,进入应用开发页面。
    2. 在页面左上方单击,选择环境管理 > 环境配置,进入环境配置。
    3. 在左侧导航栏中,选择“集成连接 > OAuth”菜单,新建OAuth管理。
      图4 新建授权码模式OAuth管理

      重定向地址将作为第三方系统同意授权后的跳转页面,并在页面地址上携带授权码信息。

    4. 在OAuth管理列表中,单击该鉴权所在行的,下载密钥文件。
      表5 密钥文件参数

      参数

      参数说明

      redirect_uri

      当“授权类型”配置为“授权码模式”时,密钥文件会包含该参数,为上一步设置的重定向地址。

      client_id

      鉴权的客户端ID。

      client_secret

      鉴权密钥。

    5. 根据鉴权ID和重定向地址,在浏览器上的访问接口“https://华为云Astro轻应用域名/baas/auth/v1.0/oauth2/authorize”,获取授权码信息。
      表6 请求参数说明

      参数名

      类型

      必选(M)/可选(O)

      参数位置

      参数含义

      response_type

      String

      M

      Params

      授权接口返回类型,即返回授权码

      code

      client_id

      String

      M

      Params

      客户端鉴权ID,可在OAuth查看。

      从上一步骤获取。

      redirect_url

      String

      M

      Params

      重定向地址。

      从上一步骤获取。

    6. 单击“授权”按钮,跳转到重定向地址,并携带授权码信息。
      图5 授权码信息
    7. 根据授权码code,根据鉴权ID、鉴权密钥通过Post请求调用接口“https://华为云Astro轻应用域名/baas/auth/v1.0/oauth2/token”,获取access_token。
      表7 请求参数说明

      参数名

      类型

      必选(M)/可选(O)

      参数位置

      参数含义

      grant_type

      String

      M

      Body

      授权模式,OAuth2.0中的grant_type字段的取值。

      authorization_code(即授权码模式)

      client_id

      String

      M

      Body

      客户端鉴权ID,可在OAuth查看。

      4中获取。

      client_secret

      String

      M

      Body

      客户端鉴权密钥,可在OAuth查看。

      4中获取。

      redirect_url

      String

      M

      Body

      重定向地址。

      4中获取。

      code

      String

      M

      Body

      授权码。

      6中获取。

      locale

      String

      O

      Body

      语言。

      en_US

      表8 返回参数说明

      参数

      参数说明

      access_token

      认证后可信任的Token凭证。

      expires_in

      当前access_token的有效期。

      refresh_token

      用于刷新access_token。

      token_type

      access_token类型。

      图6 接口调用结果

      使用授权码获取access-token后即失效,重新获取access-token需要重新生成授权码。

    8. 将得到的token_type与access_token进行拼接,以{token_type} {access_token}的形式设置为Headers中的Authorization参数,通过Get请求调用接口“https://华为云Astro轻应用域名/u-route/baas/oauth/v1.0/userinfo”,获取用户信息。
      图7 获取用户信息

业务用户通过RefreshToken获取新的Token

  1. 开启RefreshToken特性。

    1. 在华为云Astro轻应用服务控制台的“主页”中,单击“进入首页”,进入应用开发页面。
    2. 在页面左上方单击,选择环境管理 > 环境配置,进入环境配置。
    3. 在左侧导航栏中,选择“系统设置 > 系统参数”。
    4. 在“内置系统参数”页签,查找“bingo.service.refreshtoken.enable”,单击搜索结果中的该参数名,在参数详情页单击“值”后的编辑按钮,设置参数值为“是”,单击“保存”。
      图8 查找参数
      图9 修改值为是

  2. 业务用户(例如“test_cs”)通过服务编排的“PORTALUSERLOGIN”公式登录华为云Astro轻应用。

    1. 在“我的应用”中,单击某个应用,进入应用开发平台。
    2. 将鼠标放在左侧某个文件夹,单击界面上出现的“+”,在弹出菜单中选择“服务编排”。
    3. 设置标签为“testPortalUserLogin”,单击“名称”的输入框,系统会自动填充。然后单击“添加”。
    4. 在服务编排编辑器页面右侧,选择,在全局上下文页面单击“公式”后的加号。
    5. 在公式页面设置“名称”为“portal”,“数据类型”设置为“文本”,表达式为“PORTALUSERLOGIN("test_cs")”,单击“保存”,创建公式变量“portal”,表达式中的“test_cs”为要登录系统的业务用户名。
      图10 新建公式变量
    6. 在服务编排编辑器页面右侧,选择
    7. 在全局上下文页面,单击“变量”后的加号,默认创建名为“variable0”的文本类型变量。
    8. 在服务编排编辑器页面右侧,选择,按照下图从全局上下文页面中拖拽参数到出参区域,设置服务编排的出参。
      图11 设置服务编排的出参
    9. 在左侧拖拽“逻辑”下“赋值”图标至画布中,按照下图设置赋值图元。
      图12 设置赋值图元
    10. 连接所有元素。

    11. 在页面上方,单击,保存服务编排。
    12. 保存成功后,单击,不用设置输入参数直接单击“运行”,运行服务编排。

      输出如下,表示业务用户已登录华为云Astro轻应用。

      {
        "interviewId": "002N000000jeTG4DKxSS",
        "outputs": {
          "variable0": "XXX"
        }
      }

      其中,“variable0”取值为业务用户的access-token值。

    13. 在输出的页面,按“F12”或者“Ctrl + Shift + I”,可开启调试工具。
    14. 在Cookies中,获取“refresh-token”值。

  3. 使用Postman发送请求,获取新Token。

    1. 在本地PC上下载并安装Postman工具,该工具仅用于测试使用。
    2. 使用Postman进行POST请求,URL配置为“https://华为云Astro轻应用域名/baas/auth/v1.0/refreshtoken”,在请求消息头上设置参数“Content-Type”值为“application/json”,请求消息体中设置参数“grant_type”值为“refresh_token”,“refresh_token”值为2.n获取的“refresh-token”参数值。输出的result值即为新的Token,原有的Token不管有没有失效,都会被置成失效状态。
      图13 Postman发送请求
      表9 请求消息头

      消息头名称

      描述

      是否必选

      Content-Type

      HTTP协议中设定的一个参数,用于标识返回的内容用什么格式去解析,此处必须配置为“application/json”。表示浏览器将返回内容解析为json对象。

      表10 消息体说明

      参数名

      描述

      是否必选

      grant_type

      授权类型,配置为“refresh_token”。

      refresh_token

      配置为2.n获取的“refresh-token”参数值。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容