.Net Core实战之基于角色的访问控制的设计-部署篇

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
访问控制,不限时长
简介: 2年前开源了Sikiro.RBAC系统(https://github.com/SkyChenSky/Sikiro.RBAC)但是缺少了部署流程,这次通过申请免费的ECS,重新把流程梳理了下,并整理成改篇文章。.Net Core实战之基于角色的访问控制的设计(https://www.cnblogs.com/skychen1218/p/13053878.html)

前言


在两年前,我开源了一个基于RBAC的管理后台(https://www.cnblogs.com/skychen1218/p/13053878.html),其文章主要讲述了如何设计一个初级的RBAC系统。然而,我把部署的步骤给漏了,其中也有不少的新手同行问我要部署流程。


正好,今天我向阿里云申请了一台免费的ECS 计算型c7的机子,也以此来写一篇文章把之前漏的部署步骤给补充起来。


源码地址:https://github.com/SkyChenSky/Sikiro.RBAC


QQ截图20220509214407.png


技术栈


我开源的这套RBAC系统使用.Net 5和Mongodb结合开发的,将会部署到Centos 7上运行。


登录ECS


我通过申请免费的ECS,重置密码后,利用我自己常用的工具Termius登录Centos 7系统。


QQ截图20220509214547.png


QQ截图20220509215437.png

登录服务器后,就开始部署Mongodb和应用站点了,Mongodb我是以docker的方式安装的,所以首先的安装docke-ce


安装Docker-ce


1.升级系统软件

yum upgrade -y


2.安装必要的一些系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2


3.添加软件源信息

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


4.更新并安装 docker-ce

yum makecache fast

yum install docker-ce -y


5.启动服务

systemctl daemon-reload

systemctl restart docker

QQ截图20220509221150.png

安装Mongodb


用Docker安装Mongodb


执行以下指令:

docker run -d  -p 27017:27017  --name mongodb mongo:4.2 --auth


创建Mongodb管理员账号


添加账号

docker exec -it 4abc1e6e12bd mongo admin


创建管理员用户

use admin  

db.createUser({ user: 'admin', pwd: '#oYP9D5pPz0DmZ7N', roles: [ { role: "root", db: "admin" } ] });


身份认证后,修改账户角色

db.auth("admin","#oYP9D5pPz0DmZ7N");

db.grantRolesToUser("admin", [ { role:"root", db: "admin"} ])


切换到业务库,并添加用户

use rbac;


db.createUser({ user: 'admin', pwd: '#oYP9D5pPz0DmZ7N', roles: [ { role: "readWrite", db: "rbac" } ] });


db.grantRolesToUser("admin", [ { role:"readWrite", db: "rbac"} ])


db.auth("admin","#oYP9D5pPz0DmZ7N");

QQ截图20220509222039.png

添加基础业务数据


使用Robo 3T 工具,登录刚刚创建好的Mongodb,打开该页面(https://github.com/SkyChenSky/Sikiro.RBAC),把Administrator和Menu的数据通过Robo 3T添加到Mongodb里。

QQ截图20220509222506.png


安装FTP服务器

yum install -y vsftpd


修改配置

vim /etc/vsftpd/vsftpd.conf


把已有的配置修改

anonymous_enable=NO

listen=YES

#listen_ipv6=YES


允许root登录

vim /etc/vsftpd/user_list

vim /etc/vsftpd/ftpusers

注意把root注释掉:

#root


启动

systemctl start vsftpd

systemctl enable vsftpd


开放入站端口


FTP是使用21和20端口,5000是接下来RBAC系统使用的端口,我们一起添加到安全组

QQ截图20220510001011.png


使用filezilla传输文件


输入ECS的账号和密码,选择【只是使用明文FTP】,点击连接,接下来就可以用FTP传输文件了。

QQ截图20220510001502.png


开始部署Sikiro.RBAC应用


部署完成Mongodb后就完成了80%了,剩下就把站点编译后把对应的文件发布到Linux服务器。


执行以下命令:


dotnet Sikiro.Web.Admin.dll --server.urls "http://172.18.52.19:5000


172.18.52.19是我自己ECS的内网地址,大家按照自己需要绑定即可。


QQ截图20220510000600.png


登录RBAC系统


登录在之前添加Mongodb数据时已经设置好的默认账号 chengong/123456

QQ截图20220510000738.png

文章到这里我们就部署成功了。


相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
4天前
|
安全 数据安全/隐私保护 开发者
|
4天前
|
开发框架 前端开发 中间件
聊聊 ASP.NET Core 中间件(二):中间件和筛选器的区别
聊聊 ASP.NET Core 中间件(二):中间件和筛选器的区别
|
4天前
|
开发框架 缓存 NoSQL
聊聊 ASP.NET Core 中间件(一):一个简单的中间件例子
聊聊 ASP.NET Core 中间件(一):一个简单的中间件例子
|
4天前
|
开发框架 .NET 数据库连接
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
|
4天前
|
开发框架 前端开发 .NET
闲话 ASP.NET Core 数据校验(二):FluentValidation 基本用法
闲话 ASP.NET Core 数据校验(二):FluentValidation 基本用法
|
4天前
|
开发框架 前端开发 .NET
闲话 ASP.NET Core 数据校验(一):内置数据校验
闲话 ASP.NET Core 数据校验(一):内置数据校验
|
4天前
|
存储 开发框架 算法
ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解决思路
ASP.NET Core 标识(Identity)框架系列(四):闲聊 JWT 的缺点,和一些解决思路
|
4天前
|
开发框架 .NET API
如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?
如何在 ASP.NET Core Web Api 项目中应用 NLog 写日志?
|
4天前
|
开发框架 中间件 .NET
分享 ASP.NET Core Web Api 中间件获取 Request Body 两个方法
分享 ASP.NET Core Web Api 中间件获取 Request Body 两个方法
|
4天前
|
开发框架 中间件 .NET
聊聊 ASP.NET Core 中间件(三):如何创建自己的中间件?
聊聊 ASP.NET Core 中间件(三):如何创建自己的中间件?