# 基于HOS开发的系统

# 应用系统提供系统信息

应用系统需要向医为项目组提供应用系统信息,由医为项目组完成系统注册。

  • 应用系统需要提供
  • 系统名称
  • 系统编码
  • 系统架构(BS)
  • 打开方式(非必须,默认内部窗口)
  • 访问地址(访问应用系统的地址)
  • 回调地址(应用系统用于接收授权码的地址,应用重定向到统一认证,统一认证会回调该地址,携带授权码)
  • 单点退出地址(非必须)

注意:

  • HOS架构回调地址和单点退出地址是固定的,应用系统只需要更改ip和端口即可
  • HOS架构回调地址:https://ip:port/api/security/login/oauth2/code/messaging-client-oidc
  • HOS架构单点退出地址:https://ip:port/api/security/oauth2/token/logout

# 提供应用系统注册信息和测试账号

应用系统提供系统信息给医为项目组后,项目组会分别在统一用户平台和门户系统注册应用系统,并提供如下信息:

  • AppId(客户端注册的AppId,对应接口参数中的client_id)
  • AppSecret(客户端注册的AppSecret,对应接口参数中的client_secret)
  • 门户系统登录地址
  • 门户系统登录测试账号和密码

提供信息示例如下:

  • AppId:B8270EB95xU9
  • AppSecret:105w43q5v3X44L2c
  • 门户登录地址:https://192.168.1.101:8000(项目组会提供实际的ip信息)
  • 测试账号和密码:ys01/123456(以项目组实际提供的测试账号密码为准)

# 门户中点击应用系统图标

应用系统开发人员使用本文上一步骤中提供的测试账号密码,登录门户系统,进入单点登录页面,找到应用系统(本文以oa协同办公系统为例),鼠标左键点击图标,跳转应用系统页面,这里门户系统会跳转本文应用系统提供系统信息中应用系统提供的访问信息,并携带门户默认传递的参数,如下图所示:

跳转应用系统访问地址示例:

https://ip:port?windowId=b2669876cf398abe760cbd10b0c05543&showTitle=true&&sessionKey=admin_4103&language=zh&MACAddr=9C:6B:00:48:B1:98&IPAddress=10.1.30.51&DNSHostName=administrator

门户系统默认的参数根据需要使用,如不需要可无视。

参数说明:

  • windowId:内部窗口id
  • showTitle:内部窗口是否展示标题(true:展示标题;false:隐藏标题)
  • sessionKey:HOS缓存区缓存key值
  • Language:语言编码
  • MACAddr:客户端mac地址
  • IPAddress:客户端ip
  • DNSHostName:客户端名称

# 应用系统后端配置

根据实际环境修改对应的yml配置文件;以开发环境配置文件application-dev.yml文件为例介绍;文件位置如下图所示:

修改或增加文件内容

以OA应用系统对接统一认证为例介绍相关配置,实际地址需要根据项目实际环境来修改。

统一认证服务ip和端口地址:http://ip:8002

OA应用的前端地址:http://ip:8888

hos-security:
  front-url: http://ip:8888                  #应用前端地址
  authentication-uri: http://ip:8002         #统一认证地址
  login:                                                #登录相关配置
    white-list:                                         #认证白名单
      - /openApi/**
      - /druid/**
      - /license/*
      - /loginPageData/*
      - /property/is-enable-tenant
      - /tenant/select-tenant-by-domain
      - /tenant/select-tenant
      - /core/system/files/other/**
      - /core/system/files/image/**
      - /websocket/
      - /favicon.ico
      - /v2/api-docs
      - /swagger-resources
      - /acm/accountAndPWD/validateAccount
      - /doc
      - /**/*.css
      - /**/*.js
      - /**/*.png
      - /**/*.jpg
      - /**/*.jpeg
      - /**/*.html
      - /**/*.ico
      - /**/*.properties
      - /**/*.woff
      - /**/*.woff2
      - /**/*.ttf
      - /hos-job-admin/api/registry
      - /i18n/language/list-select
      - /i18n/element/get-loginPageElements
      - /i18n/config/is-open
      - /i18n/static-translation/transByCode
      - /sys/config/is-open-download-browser
      - /poserver.zz
      - /posetup.exe
      - /sealsetup.exe
      - /poserver.zz
      - /login/passwordFree/userInfo
      - /org/hos-post/select-post-page
      - /i18n/element/get-login-page-config
  oauth2:                                    #统一认证oauth2登录配置
    enable: true                             #是否开启统一认证登录
    client:                                  #统一认证登录配置
      registration:
        messaging-client-oidc:
          provider: spring                    #对应下边 provider 的配置,不需要修改
          client-id: messaging-client         #统一用户平台中创建应用的id
          client-secret: secret               #统一用户平台中创建应用的秘钥
          authorization-grant-type: authorization_code  #认证类型,不要修改
          redirect-uri: ${hos-security.front-url}/api/security/login/oauth2/code/messaging-client-oidc  #回调地址,不要修改
          scope: openid                                #统一用户平台中创建应用的作用域
          client-name: hos-app                          #该客户端名称
      provider:
        spring:
          issuer-uri: ${hos-security.authentication-uri}/api          #发行地址
          authorization-uri: ${hos-security.authentication-uri}/oauth/authorize   #获取授权码页面

# 集成完成,测试

访问OA系统地址http://ip:8888 会跳转到统一认证服务登录页面,示例地址如下:

http://ip:8002/login/login?redirect=%2Foauth%2Fauthorize%3Fresponse_type%3Dcode%26client_id%3D140m9Bweb0a87a3%26scope%3Dopenid%2520profile%26state%3DkNJlzY2YiqvSH8NC3jiuk7arSzXChmDbJNk_EDZdXGg%253D%26redirect_uri%3Dhttp%253A%252F%252FIP%253A8001%252Fapi%252Fsecurity%252Flogin%252Foauth2%252Fcode%252Fmessaging-client-oidc%26nonce%3DXd-w13d_6zkmZgej0IskVCq7ot-_KWEKvG-hFXwZezs

输入统一认证用户名和密码,即可成功登录到OA系统: