权限认证机制介绍
权限认证是指当用户登录AppCube平台时,对用户拥有的权限进行认证的机制。
AppCube提供的所有接口都需要通过认证之后才可以访问。而平台用户分以下几类,
不同类别的用户访问接口的权限会有所不同:
● 管理员用户 (User):也可以称为平台用户,是对应运行环境、开发环境用户,用 于管理开发应用。
使用认证机制为:“帐号密码登录认证”、“单点登录认证”和“OAuth 2.0鉴权 登录认证”。
● 业务用户(Portal User):业务用户是访问AppCube提供的业务服务的用户。
使用的认证机制为:“帐号密码登录认证”、“单点登录认证”和“OAuth 2.0鉴 权登录认证”。
● 匿名用户 (Guest):对于该类用户,平台接口都需要进行校验,未登录前使用 Guest用户身份来访问平台接口,一般会赋予最小的权限。
使用的认证机制为:“OAuth 2.0鉴权登录认证”。
权限认证方式
AppCube中的认证方式使用的是:在请求消息头上设置“access-token”进行认证。
在请求头上设置“access-token”是通过不同的认证接口来获取到Token。Token在计 算机系统中代表令牌(临时)的意思,拥有Token代表拥有某种权限。Token认证是在 调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。
如何通过 Token 进行认证
通过Token进行接口认证的方法说明如下表所示。
表1-7 接口认证说明 CAS server登录后携带ticket重定 向到AppCube。 AppCube后台拿 ticket到CAS Server校验ticket合 法性,得到ticket对应的租户(可
并返回到CAS Server。
成功验证用户身份后,则生成 Session写到Cookies上, 重定向 到指定页面。例如: 排中PORTALUSE RLOGIN公
RefreshToken 特性
可以通过配置内置系统参数“bingo.service.refreshtoken.enable”为“是”的方式来 选择开启RefreshToken特性。开启后,业务用户通过服务编排的
“PORTALUSERLOGIN”公式登录AppCube时,会在Cookies中多返回一个“refresh-token”参数。可再通过发起请求“POST https://AppCube域名/baas/auth/v1.0/
refreshtoken”来获取一个新的Token(调该接口时需要在请求消息头上设置参数
“Content-Type”值为“application/json”,请求消息体中设置参数“grant_type”
值为“refresh_token”,“refresh_token”值为Cookies中返回的“refresh-token”
参数值)。原有的Token不管有没有失效,都会被置成失效状态。一般情况下,
“refresh-token”的有效期会比较长,在用户的权限配置中可通过配置“刷新凭证时 长”来控制其有效期。
具体操作如下:
1. 开启RefreshToken特性。
a. 在AppCube管理中心左侧导航栏中,选择“系统管理 > 系统参数”。
b. 在右侧选择“内置系统参数”页签,查找
“bingo.service.refreshtoken.enable”,单击搜索结果中的该参数名,在参 数详情页单击“值”后的编辑按钮,设置参数值为“是”,单击“保存”。
图1-73 查找参数
2. 业务用户(例如“test_cs”)通过服务编排的“PORTALUSERLOGIN”公式登录 AppCube。
a. 在“我的应用”中,单击某个应用,进入应用开发平台。
b. 将鼠标放在左侧某个文件夹,单击界面上出现的“+”,在弹出菜单中选择
“服务编排”。
c. 设置标签为“testPortalUserLogin”,单击“名称”的输入框,系统会自动 填充。然后单击“添加”。
d. 在服务编排编辑器页面右侧选择 。在全局上下文页面单击“公式”后的加 号。
e. 在公式页面设置“名称”为“portal”,“数据类型”设置为“文本”,表达 式为“PORTALUSERLOGIN("test_cs")”,单击“保存”,创建公式变量
“portal”,表达式中的“test_cs”为要登录系统的业务用户名。
f. 在服务编排编辑器页面右侧选择 。在全局上下文页面单击“变量”后的加 号,默认创建名为“variable0”的文本类型变量。
g. 在服务编排编辑器页面右侧选择 ,按照下图从全局上下文页面中拖拽参数 到出参区域。设置服务编排的出参。
h. 在左侧拖拽“逻辑”下“赋值”图标至画布中,松开鼠标左键。按照下图设 置赋值图元。
i. 连接所有元素。
j. 单击 ,保存服务编排。
k. 单击 ,不用输入入参直接单击“运行”,运行服务编排。
输出如下,表示业务用户已登录AppCube。
{ "interviewId": "002N000000jeTG4DKxSS", "outputs": {
"variable0": "XXX"
}}
其中“variable0”取值为业务用户的access-token值。
l. 在输出的页面按“F12”或者“Ctrl + Shift + I”,可开启调试工具。在 Cookies中获取“refresh-token”值。
3. 使用Postman发送请求,获取新Token。
a. 在本地PC上下载并安装Postman工具,该工具仅用于测试使用。
b. 使用Postman进行POST请求,URL配置为“https://AppCube域名/baas/
auth/v1.0/refreshtoken”,在请求消息头上设置参数“Content-Type”值为
“application/json”,请求消息体中设置参数“grant_type”值为
“refresh_token”,“refresh_token”值为2.l获取的“refresh-token”参数 值。输出的result值即为新的Token。原有的Token不管有没有失效,都会被 置成失效状态。
图1-74 Postman 发送请求
表1-8 请求消息头
消息头名称 描述 是否必选
Content-Type HTTP协议中设定的一个参数,用于标识返回 的内容用什么格式去解析,此处必须配置为
“application/json”。表示浏览器将返回内容 解析为json对象。
是
表1-9 消息体说明
参数名 描述 是否必选
grant_typ
e 授权类型,配置为“refresh_token”。 是 refresh_to
ken 配置为2.l获取的“refresh-token”参数
值。 是