跳到主要内容

服务集成说明

本文档介绍如何将 SERVICEME NEXT 应用与其他网站或 SSO(单点登录)服务 进行集成,实现跨系统的统一身份认证与无缝访问。


1. 基本流程

服务集成的整体流程如下:

  1. 在 SERVICEME NEXT 登录页配置登录按钮(可选)

    • 用于在产品登录页中展示单点登录入口。
  2. 跳转至自定义 SSO 前端页面

    • 处理与客户系统的登录逻辑(如用户信息获取、生物认证拉起等)。
  3. 访问自定义 SSO 后端接口

    • 完成与 SERVICEME 后端的交互,如统一用户注册、签发 Token 等。
  4. 重定向回 SERVICEME NEXT 登录页

    • 通过携带 Token 跳转回 SERVICEME NEXT,实现自动登录。

流程图示意


2. 具体操作说明

2.1 登录页单点登录按钮配置

此步骤为 可选项,当你希望在登录页提供“自定义登录”按钮时,可以在环境变量中添加配置。

进入 SERVICEME NEXT 环境变量管理 页面,在 SSO_LOGIN_CONFIG 中配置如下内容:

{
"type": "Custom",
"code": "my-custom-sso",
"config": {
"LOGIN_BUTTON_I18N_KEY": "login.sso.custom.login",
"LOGIN_URL": "/custom-login",
"APP_ID": "BskGfSXPNt5AfQXMO6b1M"
}
}

配置完成后,登录页会显示一个按钮,点击后跳转至目标链接:

https://<frontend-deploy-host>/custom-login?code=my-custom-sso&APP_ID=BskGfSXPNt5AfQXMO6b1M

如需自定义挂载页面,请参阅 产品前端自定义挂载静态资源指南 - Overview


2.2 自定义开发单点登录页面

LOGIN_URL 对应的页面即为定制化登录页,该页面需要实现以下逻辑:

  1. 与客户 SSO 系统进行认证交互;
  2. 与自定义 SSO 后端进行信息同步;
  3. 获取 Token 后,重定向至 SERVICEME NEXT 登录路由。

重定向格式如下:

https://<frontend-deploy-host>/login-token?token=<new-jwt-token>

SERVICEME 前端会验证该 Token 的可信性,通过后即可登录系统。
请确保 JWT Token 为有效 Token,并由合法 Client 签发。


2.3 自定义开发 SSO 后端

自定义 SSO 后端主要负责用户 Token 签发与账户管理。
签发依赖 Client ID + Secret,请先在 SERVICEME 后台创建 Client。

相关接口包括:

  • 用户接口:查询、创建、更新用户,支持用户名、邮箱、工号搜索;
  • 第三方登录接口:管理第三方账户绑定;
  • Client 接口:签发 Token(忽略可信域字段);
  • 角色/组织接口:用于角色与部门同步。

2.4 挂载自定义开发前后端服务

SERVICEME NEXT 前端镜像提供了两个挂载点:

挂载路径说明
/etc/nginx/custom_conf挂载自定义 Nginx 配置
/usr/share/nginx/static挂载自定义静态资源(前端页面)

2.4.1 挂载自定义前端页面

将自定义的 HTML 页面放置在:

/usr/share/nginx/static/app2/

并在 custom.conf 中添加以下内容:

location /app2 {
root /usr/share/nginx/static/;
index index.html index.htm index.shtml;
try_files $uri $uri/ /index.html;

if ($request_filename ~* .*\.html$) {
add_header Cache-Control "no-cache, no-store";
}
}

运行容器时挂载目录:

docker run -p 80:80 \
-v ./custom.conf:/etc/nginx/custom_conf/custom.conf \
-v ./static:/usr/share/nginx/static \
servicemerelease.azurecr.io/serviceme-frontend:4.0.0

2.4.2 挂载自定义后端服务

假设自定义后端服务位于内网地址 http://delivery-backend
想在前端 /custom-backend/ 路径下访问,可在 custom.conf 添加如下配置:

location /custom-backend/ {
proxy_pass http://delivery-backend/;
proxy_connect_timeout 240s;
proxy_read_timeout 240s;
proxy_send_timeout 240s;
proxy_buffering off;
}

结语

通过以上步骤,即可实现 SERVICEME NEXT 与企业内部系统的无缝集成,
支持单点登录(SSO)、用户统一认证、以及灵活的前后端自定义扩展。