Skip to content

Latest commit

History

95 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

StarStudioSSO


API 文档 (Documentation)

具体的使用方法可参考 API 文档


子项目

Architecture


Docker 部署

构建

sudo ./docker-build-sso.sh // 构建 SSO API Server 镜像
sudo ./docker-build-landevice.sh // 构建 LANDevice 镜像
sudo ./docker-build-checkbot.sh // 构建 Checkbot 镜像

部署 API Server

docker run --restart always -d -e REDIS_HOST=... \
-e MYSQL_HOST=... \
-e MYSQL_PASSWORD=... \
-e MYSQL_DB=... \
-e MYSQL_USER=... \
-e SERVER_HOST_NAME=sso.starstudio.org \
-p 8000:80 \
-v /home/www/StarSSO/conf:/etc/StarSSO \
-v /home/www/StarSSO/log:/var/log/StarSSO \
starsso:1.0.1

部署 LANDevice

docker run --restart always -d --network host \
-e REDIS_HOST=... \
-e MONITOR_INTERFACE=...\
-v /home/www/landevice/conf:/etc/LANDevice \
-v /home/www/landevice/log:/var/log/LANDevice \
landevice:1.0.1

部署 CheckBot

docker run --restart always -d -e REDIS_HOST=... \
-e MYSQL_HOST=... \
-e MYSQL_PASSWORD=... \
-e MYSQL_DB=... \
-e MYSQL_USER=... \
-v /home/www/CheckBot/conf:/etc/CheckBot \
-v /home/www/CheckBot/log:/var/log/CheckBot \
checkbot:1.0.1

StarMember

身份管理、认证服务器,支持单点登录,提供Restful API。

依赖

推荐使用 virtualenv 进行部署,在虚拟环境中安装依赖。

pip install -r requirements.txt

配置

在环境变量 API_CFG 指定配置文件位置。

export LAN_DEV_PROBER_CONFIG=<配置文件绝对路径>
配置说明

生产环境请使用 gunicorn 部署,以保证性能。

LANDevice

设备感知服务,主动感知局域网内在线设备,提供子网内设备信息列表(MAC、IP、设备名等信息),并产生设备活动事件(加入、移除、设备名更新、DHCP重分配等事件),供其他服务使用。所有信息经过 Redis 实现订阅/发布。

依赖

推荐使用 virtualenv 进行部署,在虚拟环境中安装依赖。

pip install -r requirements_landevice.txt

配置

在环境变量 LAN_DEV_PROBER_CONFIG 指定配置文件位置。

export LAN_DEV_PROBER_CONFIG=<配置文件绝对路径>

启动服务

python -m LANDevice

会阻塞,生产环境建议使用supervisor。

CheckBot

人员统计服务,结合设备绑定信息,自动统计成员进出情况。

依赖

推荐使用 virtualenv 进行部署,在虚拟环境中安装依赖。

pip install -r requirements_checkbot.txt

配置

在环境变量 CHECK_BOT_CONFIG 指定配置文件位置。

export CHECK_BOT_CONFIG=<配置文件绝对路径>

配置示例

三个项目的配置都类似,可以共用一个配置文件

## Configure SSO API Server## LoggingACCESS_LOG='access.log'# 日志文件ERROR_LOG='error.log'DEBUG_LOG='debug.log'DEBUG=False# 调试模式# SecretSECRET_KEY_FILE='jwt.pri'# JWT 私钥SECRET_KEY_FILE_MODE=0o600# 私钥文件权限PUBLIC_KEY_FILE='jwt.pub'# JWT 公钥PUBLIC_KEY_MODE=0o666# 公钥文件权限SALT_FILE='starstudio.salt'# 密码散列盐SALT_FILE_MODE=0o600# 文件权限AUTH_TOKEN_EXPIRE_DEFAULT=86400# Auth 类型 Token 的有效时间 (秒)APP_TOKEN_EXPIRE_DEFAULT=86400# Application 类型 Token 的有效时间 (秒)# DatabaseMYSQL_DATABASE_HOST='localhost'# 数据库配置MYSQL_DATABASE_PORT=3306MYSQL_DATABASE_USER='root'MYSQL_DATABASE_PASSWORD=NoneMYSQL_DATABASE_DB='starstudio'MYSQL_DATABASE_CHARSET='utf8'# Access contaol # 权限控制ALLOW_REGISTER=True# 允许外部注册ALLOW_ANONYMOUS_GROUP_INFO=True# 允许匿名访问小组信息,以方便注册USER_INITIAL_ACCESS=frozenset([
'auth', 'read_self', 'read_internal', 'read_other', 'write_self', 'read_group'
])
APP_INITIAL_ACCESS=frozenset([
'auth', 'read_self'
])
# Web consoleSSO_WEB_REDIRECT_PREFIX='http://sso.local.com/'# 内部 SSO 管理面板登录的Redirect前缀## LAN Device discover service.# CheckBot service.#LAN_DEV_REDIS_HOST=''# RedisLAN_DEV_REDIS_PORT=''LAN_DEV_REDIS_PROBER_IDENT_PREFIX='LANDEV_DEFAULT'# Redis key前缀,用于区分应用LAN_DEV_LIVENESS_TRACK_INTERVAL=5# 进行设备存活测试的时间间隔LAN_DEV_LIVENESS_PROBE_TIMEOUT=5# 进行设备发现超时时间# 若设备在此时间内无响应,则判断# 设备不存在LAN_DEV_LIVENESS_PROBE_INTERVAL=30# 进行设备发现的时间间隔LAN_DEV_INTERFACE='wlp3s0'# 进行设备感知的接口名称

About

Authentication Server.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages