基线支持对第三方账号授权登录智慧园区运营中心。配置完成后,可以在IOC登录页使用第三方登录方式登录。
系统默认支持的账号类型是EmployeeNo,其它账号类型如表1所示。
登录账号类型 | 验证模式 | 说明 |
---|---|---|
EmployeeNo | Identity | 在IOC中创建的用户,登录IOC时的验证模式。 |
welink | WeLink | WeLink用户直接登录IOC时的验证模式。 |
WeLinkBamboo | WeLinkBamboo | 通过IAM对接Welink时,Welink用户登录IOC的验证模式。 |
IAM | Custom | 通过IAM统一鉴权登录IOC的验证模式。 |
第三方账号类型 | Custom | 第三方系统的用户登录IOC时的验证模式。 |
这里以华为W3 Uniportal账号为例,介绍如何授权第三方账号(华为W3 Uniportal账号)登录IOC。
开发自定义鉴权脚本
自定义鉴权脚本,用于第三方登录时的鉴权,脚本具体逻辑应参考第三方系统的登录接口。
1. 基于基线应用System Management,创建Addon应用。
第三方的鉴权脚本,建议与基线APP的接口——第三方授权登录(oauthLogin)接口放在一起,以避免跨APP调用,所以推荐基于基线应用(System Management)创建Addon应用。
2. 在Addon应用中创建第三方系统的鉴权脚本。
例如本示例中,第三方账号——W3 Uniportal的鉴权脚本如下。开发其他第三方系统的鉴权脚本时,可以依据下面的脚本重新编排逻辑,出入参不变。
import * as date from 'date'import * as db from 'db'import * as sys from 'sys'import * as http from 'http'import * as context from 'context'export default function oauthLoginValidator(loginAccount, credential, setting, accountType): any { let user = {}; //基线对接W3 Uniportal Demo,供参考 let client = http.newClient(); //1、获取token const tokenRequest = { data: { grant_type: 'authorization_code', code: credential, client_id: setting.clientId, client_secret: setting.clientSecret, redirect_uri: setting.redirectUrl }, headers: { 'Content-Type': 'application/json' } }; const tokenResp = client.post(setting.baseUrl + 'accesstoken', tokenRequest); let tokenBody = JSON.parse(tokenResp.body); let accessToken = tokenBody.access_token; //2、获取用户信息 let userPath = setting.baseUrl + 'userinfo?access_token=' + accessToken + '&scope=' + setting.scope + '&client_id=' + setting.clientId; const userResp = client.post(userPath); let userBody = JSON.parse(userResp.body); let userName = ''; if (setting.idField) { userName = setting.idField; if (!userBody[userName]) { context.throwError('SmartCampus__LoginValidateError'); return; } user['id'] = userBody[userName]; user[userName] = userBody[userName]; } else { if (!userBody.id) { context.throwError('SmartCampus__LoginValidateError'); return; } user['id'] = userBody.id; } return user;}
配置第三方W3 Uniportal账号登录
1. 在W3 Uniportal上注册应用。
a. 使用W3 Uniportal管理员账号登录后台管理系统,新增应用如图1所示。
图1 W3 Uniportal上注册应用
b. 记录上一步配置的参数值:应用ID、应用Secret。
2. 检查AppEngine对象存储代理连接器配置
a. 登录AppEngine租户管理台。
b. 依次选择“管理 > 应用管理 > 连接器 > 对象存储代理”,进入对象存储代理页面。
c. 搜索框输入“ca_cm__identity”,检查代理名和桶名是否指向自己的OBS桶。
后续上传W3 Uniportal账号的图标时,会将图标存储到该OBS桶。
3. 配置登录账户类型。
a. 选择“管理 > 应用管理 > BO配置 > 身份配置”,单击“登录账户类型”,进入“配置登录账号类型”页面。
b. 单击“新增”,添加登录账号类型,单击“保存”。
c. 在“配置登录账号类型”页面,单击Uniportal操作栏的设置按钮,进入设置页面,需要配置的参数如表4所示。
图2 配置第三方账号登录参数
d. 设置完成后单击“保存”。
4. 配置APP第三方登录账号类型选项列表,用于“系统管理 > 用户管理”界面绑定第三方账号时,下拉框的选项。
a. 选择“管理 > 设置 > 选项列表”,进入选项列表管理页面。
b. 搜索框输入“SmartCampus__thirdPartyAccountType”,进入第三方账户类型配置页面。
c. 单击页面下方的“添加”,输入“标签”和“值”。此处的“值”配置为Uniportal。
这里的“值”必须与3.b中身份配置BO登录账户类型配置的“标识”一致。
d. 单击操作栏下方的按钮,添加完成。如图3所示。
图3 配置第三方账户类型选项列表
5. 配置完成后进入“登录IOC”页面,在“其他登录方式”下选择上述步骤配置的W3 Uniportal图标,如图4所示,进入W3 Uniportal账号的登录界面。
W3 Uniportal账号登录后,进入IOC。
图4 统一门户登录示例显示页面
-END-
更多相关文章
2020华为&兴海物联智慧社区现场会,欢迎莅临指导!
共创行业新价值!华为全联接2020如约而至
华为中国生态之行2020河北峰会,智慧园区分论坛等你!
《智慧园区设计标准》第一次评审会暨第二次工作会议成功召开
智慧园区论坛精华帖第六期:共建开放生态,使能万物互联的智能世界
智慧园区南向认证合作伙伴及设备清单
《未来智慧园区白皮书》已发布,附下载链接!
敲黑板 | 智慧园区最强开发者手册
华为智慧社区:科技赋能,给您温暖的家!