• 沒有找到結果。

权限认证机制介绍

权限认证是指当用户登录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”参数

值。 是