前面的部分:
Identity Server 4 从入门到落地(一)—— 从IdentityServer4.Admin开始
Identity Server 4 从入门到落地(二)—— 理解授权码模式
Identity Server 4 从入门到落地(三)—— 创建Web客户端
Identity Server 4 从入门到落地(四)—— 创建Web Api
Identity Server 4 从入门到落地(五)—— 使用Ajax 访问 Web Api
Identity Server 4 从入门到落地(六)—— 简单的单页面客户端
Identity Server 4 从入门到落地(七)—— 控制台客户端
Identity Server 4 从入门到落地(八)—— .Net Framework 客户端
Identity Server 4 从入门到落地(九)—— 客户端User和Role的解析
Identity Server 4 从入门到落地(十)—— 编写可配置的客户端和Web Api
认证服务和管理的github地址: https://github.com/zhenl/IDS4Admin
客户端及web api示例代码的github地址:https://github.com/zhenl/IDS4ClientDemo
第一部分开始使用的认证服务和管理应用都是在本地运行,本文介绍将这两部分作为Docker容器部署。这两部分的镜像已经上传到docker hub,可以使用下面的命令下载。
认证服务镜像:
docker pull zhenlei1970/ids4adminstsidentity
管理应用镜像
docker pull zhenlei1970/ids4adminadmin
这里记录一下我在阿里云ubuntu服务器上的部署过程,供大家参考。
首先是准备环境,安装MS SqlServer的docker容器。先下载sql server镜像:
docker pull mcr.microsoft.com/mssql/server:2019-latest
下载完成后,可以使用docker images查看是否下载完成。然后启动容器:
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=123456" -u 0:0 -p 1433:1433 --name mssql -v /data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
使用docker ps -a 查看,发现异常退出了,容器没有正常运行。使用docker logs mssql查看,发现是初始密码设置错误:初始密码必须包含大写、小写、数字和特殊字符,并且至少8位。将这个容器删除,使用新的密码再次创建新的容器,这次可以了。
如果需要从外部访问sql server,需要设置防火墙,将1433端口打开。这样可以从远程使用sql server management进行管理了。
数据库安装完成之后,可以准备部署认证服务和管理应用了。仍然需要先运行辅助工具,生成这两部分的配置文件,然后在服务器创建两个目录admin和sts,将生成的配置文件拷贝到相关目录中:
现在可以创建容器了,管理应用容器,创建时注意,映射的端口应该与生成的配置文件中的端口一致,在本例中,管理应用运行在7003端口,认证服务运行在7010端口:
docker create --name ids4admin -v /mydata/ids4/admin/log:/app/Log \
-v /mydata/ids4/admin/appsettings.production.json:/app/appsettings.json \
-v /mydata/ids4/admin/identitydata.json:/app/identitydata.json \
-v /mydata/ids4/admin/identityserverdata.json:/app/identityserverdata.json -p 7003:80 zhenlei1970/ids4adminadmin
认证服务容器:
docker create --name ids4sts -v /mydata/ids4/sts/log:/app/Log -v /mydata/ids4/sts/appsettings.production.json:/app/appsettings.json \
-p 7010:80 zhenlei1970/ids4adminstsidentity
创建完成后,使用docker start ids4admin 和docker start ids4sts启动容器。容器启动后,可以使用docker ps查看容器的运行状况。
如果出现问题,可以使用docker logs ids4admin 和docker logs ids4sts 查看日志。现在使用浏览器访问认证服务和管理应用了。