# 统一认证配置

# 项目使用

# 环境准备

# 后端

# 下载源码

1、前往Gitlab下载页面(http://119.255.194.80/hos/hos-app)下载hos-app工程,选择其中的1.0.0-RELEASE分支解压到工作目录
用户名/密码:hosuser/99ahivPJt

img_2.png

2、导入数据库: 新建数据库命名iamhos,在iamhos下执行数据库脚本hos-app-doc/mysql/hos-app-iam-8.0.sql

数据库编码:65001 (UTF-8)

3、修改配置文件:

  • 修改数据库连接,编辑hos-app-iam/hos-app-iam-web工程resources目录下的applicaiton-dev.yml
# 数据源配置
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      # 数据库地址,ip和端口,根据实际情况修改
      url: jdbc:mysql://{数据库ip}:{数据库端口}/iamhos?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
      # 数据库账户,根据实际填写
      username: root
      # 数据库密码,根据实际填写
      password: root
      driverClassName: com.mysql.cj.jdbc.Driver
  • 修改服务器配置,编辑resources目录下的applicaiton.yml
# 开发环境配置
server:
  # 服务器的HTTP端口,根据实际情况修改
  port: 8181
  servlet:
    # 应用的访问路径
    context-path: /api

4、配置跳过测试用例:

5、启动hos-app-iam/hos-app-iam-web/src/main/java/com.mediway.IamApplication类

6、出现如下图表示启动成功

# 前端

前往Gitlab下载页面(http://119.255.194.80/hos/hos-app-web)的master-iam分支下载解压到工作目录
用户名/密码:hosuser/99ahivPJt

下载与配置完成后完成后,启动项目请参考HOS基础平台在线帮助文档-启动项目

# 部署系统


提示

因为本项目是前后端完全分离的,所以需要前后端都单独部署好,才能进行访问


提示

统一认证配置前端:http://192.168.111.103:8081
统一认证配置后端:http://192.168.111.103:8181
本文档以此端口+ip为例,搭建项目根据实际情况进行修改

# 后端

1、 打包工程文件
统一认证配置打包之前需要先将base模块的打包命令注释,否则部署后无法正常工作。 如图所示:

iampackage1.png

执行maven的install命令,打包成Web工程,生成jar包文件。
然后会在项目下生成target文件夹包含jar

img_1.png

2、部署工程文件
在工程目录下,使用命令执行: java -jar hos-app-iam-web-1.0.0-RELEASE.jar

# 前端

生产环境修改:.env.production

OauthWebConfig.png

# 统一认证服务后端服务地址(实际ip+上一步后端配置的端口)
VUE_APP_BASE_URL='http://http://192.168.111.103:8181/api'
# 登录类型(form:表单登录 \oauth:单点登录)
VUE_APP_LOGIN_TYPE = 'form'

参考HOS基础平台在线帮助文档-启动项目

当项目开发完毕,只需要运行一行命令就可以打包你的应用

npm run bulid
# Nginx配置
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        //配置前端启动端口
        listen       8081;
        server_name  localhost;
		charset utf-8;

		location / {
            //配置前端打包后文件所在路径
            root   E:\hosGitProject\hos-app-web\dist;
			try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
		
		location /prod-api/ {
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://localhost:8080/;
		}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

建议开启Gzip压缩

  • 在http配置中加入如下代码对全局的资源进行压缩,可以减少文件体积和加快网页访问速度。
# 开启gzip压缩
gzip on;
# 不压缩临界值,大于1K的才压缩,一般不用改
gzip_min_length 1k;
# 压缩缓冲区
gzip_buffers 16 64K;
# 压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_http_version 1.1;
# 压缩级别,1-10,数字越大压缩的越好,时间也越长
gzip_comp_level 5;
# 进行压缩的文件类型
gzip_types text/plain application/x-javascript text/css application/xml application/javascript;
# 跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"
gzip_vary on;
# IE6对Gzip不怎么友好,不给它Gzip了
gzip_disable "MSIE [1-6]\.";

# 登录方式

项目成功启动后,访问认证配置登录页面,打开登录页面:

# 账号登录

用户在浏览器中输入http://192.168.111.103:8081,输入用户名和密码,登录系统。如下图所示 :

账号登录

默认用户:admin/111111


提示

可以正常登录表示环境搭建完成,可以进行【统一认证服务】的搭建。

# 应用系统

# 概述

【菜单路径:】统一用户认证-->应用管理-->应用系统

想使用统一认证功能的第一步就是需要将应用系统注册到统一认证这边,应用系统功能就是用来注册和管理应用系统的。

# 应用列表

应用列表可以查询接入的所有应用(删除的除外),并可以通过各种筛选条件进行筛选查询应用数据, 通过在(统一用户认证-应用管理-应用系统)首页,进入应用列表,功能如下:

# 查询应用列表数据

应用列表可以通过编码、名称模糊查询应用,也可以通过应用的类型进行筛选,也可以通过应用的启用状态进行查询 如下图所示:

应用查询示例 应用列表

# 添加应用

在应用列表点击添加应用按钮,添加应用数据,应用数据主要包含:图标、 编码、名称、简称、父系统 、类型、是否启用。其中编码租户内唯一,不能重复。

添加用户示例

系统配置信息说明

属性名        属性说明
图标 当前应用对应的图标
编码 当前应用对应的编码,唯一标识
名称 当前应用对应的名称
简称 当前应用对应的简称
父系统 当前应用系统关联在哪个应用系统下级
类型 为当前应用分配类型
是否启用 默认当前应用时否为启用状态

# 删除应用

在应用列表页,选择应用,点击第一列的复选框,可多选,然后点击删除按钮,即可删除应用,或点击停用应用的操作栏删除按钮; 需要删除的应用有子应用时,必须要先删除子应用才能删除当前应用。

删除应用示例 删除应用

# 应用停用/启用

在应用列表页的表格上,选择应用,点击是否启用的开关,即可对该应用进行启用和停用操作。

停用/启用应用示例 停用/启用应用

# 编辑应用

在应用列表页的表格上,选择应用,点击操作列的第一个按钮,即应用编辑按钮,进入应用编辑页面。 (编辑页编辑父系统,不可选中当前系统和它的子系统)

编辑应用示例 编辑应用

# 认证策略配置

# 概述

认证策略配置模块,是对接入统一用户平台的应用系统单点登录的相关信息管理, 用于维护应用系统的认证方式、认证地址、访问参数、展示权限、系统类型、访问权限、打开方式、 多重认证以及对浏览器的要求。

【菜单路径:】同一用户认证-->应用管理-->统一认证配置

# 查询认证策略配置

在(统一用户认证-应用管理-认证策略)首页中加载系统配置项的表格列表,可以通过编码、名称、类型、是否启用来模糊检索系统配置项内容.

系统项查询示例 认证策略配置

# 添加认证策略配置

在(系统管理-系统配置)首页选择添加系统配置按钮,添加认证而略数据,包含基础配置、网址配置、OAUTH协议配置、访问限制配置、 智能风控配置、多因子认证配置

基础配置示例

基础配置示例

基础配置信息说明

属性名        属性说明
应用系统 认证所属系统,唯一性
接入方式 该系统以何种方式接入平台
是否开启角色服务 控制当前系统是否开启角色服务
角色服务 角色服务内容,受是否开启角色服务开关显示
访问参数 访问的时候携带的参数内容,受是否开启角色服务开关显示
显示字段 控制系统相关所显示的字段,受是否开启角色服务开关显示
是否平铺 登录成功后该系统是否平铺展示在界面中,受是否开启角色服务开关显示
是否全部可见 控制当前系统是否处于全部可见状态
系统类型 设置当前系统的类型(B/S、C/S)
打开方式 当前系统会是以何种方式打开
浏览器类型 B/S类型系统对应的浏览器类型
客户端下载地址 C/S系统的下载地址
打开路径 当系统为B/S,浏览器类型为不区分时显示,设置打开当前系统的路径

网址配置示例

网址配置示例

网址配置信息说明

属性名        属性说明
内网访问地址 内网状态下访问应用的地址
内网回调地址 内网状态下登录应用成功跳转的地址
内网注销地址 内网状态下注销应用时访问的地址,受是否单点退出控制显示
外网可见 控制当前应用是否可以被外网访问
外网访问地址 外网状态下访问应用的地址,受外网可见控制显示
外网回调地址 外网状态下登录应用成功跳转的地址,受外网可见控制显示
外网注销地址 外网状态下注销应用时访问的地址,受外网可见,是否单点退出控制显示
是否单点登录 系统是否支持单点登录功能
是否单点退出 系统是否支持单点登录退出

OAUTH协议配置示例

OAUTH协议配置示例

OAUTH协议配置示例信息说明

属性名        属性说明
模式 配置oauth2协议的接入模式(oauth2协议的必要配置,代表使用何种模式进行认证)
权限域 可以使用哪些权限(用于限制应用程序对用户帐户的访问)
访问有效时间 访问令牌的有效时间
刷新有效时间 刷新令牌的有效时间
客户端ID 找到当前系统的唯一指定id(新增时,系统随机生成,唯一)
客户端密钥 链接当前系统的唯一指定秘钥(新增时,系统随机生成,唯一)

访问限制配置示例

访问限制配置示例

访问限制配置信息说明

属性名        属性说明
黑名单 设置当前应用访问黑名单
白名单 设置当前应用访问白名单
ip地址 配置黑/白名单中的ip地址
mac地址 配置黑/白名单中的mac地址

智能风控配置示例

智能风控:智能风控为设置本应用的常用登录时间,如配置9:00开始-18:00结束,则此时间段内登录本系统为正常 登录,除此之代的时间登录本系统都为非正常登录,需要二次认证辅助。

要使用只能风控功能需要开启多因子认证配置。

智能风控配置示例

系智能风控配置信息说明

属性名        属性说明
是否开启智能风控 对当前应用的常用登录时间是否开启配置
开始时间 每天常用登录时间的开始时间
结束时间 每天常用登录时间的结束时间

多因子认证配置示例

多因子认证:当应用开启并配置了多因子认证后,应用被非正常访问(非常用时间、多次访问)时,第一次验证通过后 还需要使用第二种认证方式进行登录,成功才可以访问本应用。

多因子认证配置示例

多因子认证配置信息说明

属性名        属性说明
是否开启多因子 应用是否开启多因子认证方式
多因子认证 开启后风险登录时第二种认证模式
认证范围 访问系统的有效认证的要求(要求每次都认证、这个系统认证过就行或认证中心登录就行)
认证时效 认证成功后所支持的时间

# 修改认证策略配置

通过点击表格的行的编辑按钮跳转修改页,来对配置项进行修改,修改内容与新增内容一直。

修改认证配置示例

# 认证策略的停用/启用

在认证策略列表页的表格上,选择策略,点击是否启用的开关,即可对该策略进行启用和停用操作。

停用/启用认证策略示例

停用/启用认证策略

# 删除认证策略配置

点击表格上方的删除按钮或者表格行中的删除按钮,来达到对系统项的批量删除或者单例删除的功能

系统项删除示例

系统项删除示例

# 认证日志

# 概述

该模块主要是针对平台管理员的用户认证相关信息的记录, 另外在此基础上根据当前登录环境中位置、 设备、时间、IP地址等多种信息识别风险威胁,防止恶意的网络攻击, 强制要求用户进行第二个方式 的身份鉴别(如动态码、生物认证),确保正确的人安全访问应用系统

【菜单路径:】同一用户认证-->应用管理-->登录日志

# 查询认证日志

在(统一用户认证-认证日志)首页可以通过登录名、标题,ip来模糊检索目录分类内容。也可以通过是否审核精确检索。

认证日志查询示例

查询认证日志

# 审核认证日志示例

在(系统管理-数据字典)首页中左侧部分加载目录分类树区域点击添加目录分类,会跳转到目录分类维护页面,维护的内容主要包含编码 ,名称,上级目录,排序,备注;其中编码是唯一的存在的.

审核认证日志示例

审核认证日志

认证日志审核信息说明

属性名        属性说明
审核类型 审批当前日志是否为正常操作
备注 对当前日志信息进行批注

# 删除认证日志

选中节点,点击删除按钮删除节点

认证日志删示例

删除认证日志