OEM IN¶
OEM IN 是指合作伙伴作为 Anyproduct 嵌入 DCE 5.0,作为 DCE 5.0 的子模块出现在一级导航栏。 DCE 5.0 为用户源,用户通过 DCE 5.0 进行登录和统一管理。
AnyProduct:当客户系统需要使用 DCE 5.0 作为身份提供商(用户源), 将 DCE 5.0 作为门户入口时,该客户系统被称为 DCE 5.0 的 AnyProduct
如何实现 OEM IN¶
打通用户体系¶
用 DCE 5.0 作为用户源,实现统一登录认证,接入到导航栏,这一步是必需的。
具体操作步骤为:
-
AnyProduct 通过 OIDC 协议 接入 DCE 5.0 的用户系统。
-
(可选)如果 AnyProduct 需进行用户同步,DCE 5.0 可提供 Webhook 注册功能, 将每一次的用户变化事件通过 Webhook 的方式通知到 AnyProduct。
嵌入 DCE 5.0 界面并将 DCE 5 作为门户¶
这一步操作可选。
前提条件:AnyProduct 系统本身需要支持 url 加前缀来访问(以 DX-ARCH 为例,需要给 url 加前缀)
具体操作步骤如下:
-
部署 DCE 5.0(假设部署完的访问地址为 https://10.6.165.50:30443/ ), 部署 AnyProduct 系统(假设 DX-ARCH 地址为 https://10.6.165.2:30034/ )
-
DCE 5.0 和 AnyProduct 前可放一个 Nginx 反代来实现同域访问,
/
路由到 DCE 5.0,/dx-arch/
路由到 AnyProduct 系统。 -
假设 nginx 入口地址为 10.6.165.50,按设置 DCE 5.0 反向代理步骤把 DCE_PROXY 设置为 http://10.6.165.50/
-
参考全局管理 GProduct 对接参考文档来实现一个空壳的 GProduct 前端子应用,把 DX-ARCH 以 iframe 形式放进该空壳应用里。
-
git clone 这个仓库 https://gitlab.daocloud.cn/henry.liu/gproduct-demo
-
在
App-iframe.vue
中,把 src 属性值改成你需要的相对地址,如src="./dx-arch"
, 如果想跳转到 http://10.6.165.50/dx-arch/ram/config/user,可以设置为src="./dx-arch/ram/config/user"
-
删除 App.vue 和 main.ts,将
App-iframe.vue
重命名成 App.vue,将main-iframe.ts
重命名成 main.ts -
如你希望用浏览器访问该 dx-arch 时使用 anyproduct 作为 subpath,如
http://{dce5_domain}/anyproduct
,需改如下内容:-
在 nginx.conf 中,将
location ~ /ui/demo/(._)$
改成location ~ /ui/anyproduct/(._)$
-
按 gproduct-demo 步骤 build 出 image
-
在 demo.yaml 中,将 image 改成 build 出来的名字,这三个地方的 demo 改成 anyproduct:
-
把 demo.yaml 和 image 放到 DCE 5.0 集群上执行 apply 命令
-
-
用户信息同步(可选)¶
方案思路为:
通过 Webhook 方式,将每一次的用户变化都通知到 AnyProduct。
租户打通(可选)¶
方案思路为:
通过 webhook 方式,将每一次的租户变化都通知到 AnyProduct (如有需求,后续可实现)
权限打通(可选)¶
方案思路一:
定制化团队可实现一定制模块,DCE 5 将每一次的用户登录事件通过 Webhook 的方式通知到定制模块, 定制模块可自行调用 AnyProduct 和 DCE 5.0 的 OpenAPI 作该用户的权限信息同步。
方案思路二:
通过 Webhook 方式,将每一次的授权变化都通知到 AnyProduct (如有需求,后续可实现)。
AnyProduct 使用 DCE 5.0 的其他能力(可选)¶
方法为:调用 DCE 5.0 OpenAPI