给Yapi添加LDAP登录认证
YApi
是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务1,由去哪儿网开发,本文基于为 Yapi 定制 apline 版 Docker 镜像简要说明如何将基于docker
安装的Yapi
与LDAP
集成。
-
利用
docker
创建MongoDB数据库1 2 3 4 5 6
docker run -d \ --name mongo-yapi \ -v $PWD/mongo-data:/data/db \ -e MONGO_INITDB_ROOT_USERNAME=anoyi \ -e MONGO_INITDB_ROOT_PASSWORD=anoyi.com \ mongo
-
在当前目录下创建一个
config.json
文件,内容如下1 2 3 4 5 6 7 8 9 10 11 12 13
{ "port": "3000", "adminAccount": "admin@anoyi.com", "timeout":120000, "db": { "servername": "mongo", "DATABASE": "yapi", "port": 27017, "user": "anoyi", "pass": "anoyi.com", "authSource": "admin" } }
-
执行下述命令初始化 YAPI 数据库索引及管理员账号
1 2 3 4 5 6 7
docker run -it --rm \ --link mongo-yapi:mongo \ --entrypoint npm \ --workdir /yapi/vendors \ -v $PWD/config.json:/yapi/config.json \ anoyi/yapi \ run install-server
若执行成功会出现下述界面
-
执行下述命令启动
yapi
1 2 3 4 5 6 7 8
docker run -d \ --name yapi \ --link mongo-yapi:mongo \ --workdir /yapi/vendors \ -p 3000:3000 \ -v $PWD/config.json:/yapi/config.json \ anoyi/yapi \ server/app.js
执行完毕后用
docker logs yapi
查看日志,若出现如下日志则表示启动成功 -
根据上述提示在浏览器中打开
yapi
,其主页类似如下 -
点击
登录/注册
之后会打开如下图所示的登录界面,可用管理员账号登录(用户名admin@anoyi.com
、密码ymfe.org
),可发现此时其不支持LDAP
登录 -
在
config.json
中添加LDAP
相关的配置,之后输入docker restart yapi && docker logs yapi
重启并观察日志1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
{ "port": "3000", "adminAccount": "admin@anoyi.com", "timeout":120000, "db": { "servername": "mongo", "DATABASE": "yapi", "port": 27017, "user": "anoyi", "pass": "anoyi.com", "authSource": "admin" }, "ldapLogin":{ "enable":true, "server": "ldap://10.10.xx.xxx:389", "searchDn": "dc=xxx,dc=com", "searchStandard":"uid", "usernameKey":"uid" } }
-
重新打开
yapi
,其登录页中会出现类似如下的LDAP
选项,至此,操作完成!