.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:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
1月前
|
存储 开发框架 JSON
ASP.NET Core OData 9 正式发布
【10月更文挑战第8天】Microsoft 在 2024 年 8 月 30 日宣布推出 ASP.NET Core OData 9,此版本与 .NET 8 的 OData 库保持一致,改进了数据编码以符合 OData 规范,并放弃了对旧版 .NET Framework 的支持,仅支持 .NET 8 及更高版本。新版本引入了更快的 JSON 编写器 `System.Text.UTF8JsonWriter`,优化了内存使用和序列化速度。
|
8天前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
9天前
|
消息中间件 开发框架 .NET
.NET 8 强大功能 IHostedService 与 BackgroundService 实战
【11月更文挑战第7天】本文介绍了 ASP.NET Core 中的 `IHostedService` 和 `BackgroundService` 接口及其用途。`IHostedService` 定义了 `StartAsync` 和 `StopAsync` 方法,用于在应用启动和停止时执行异步操作,适用于资源初始化和清理等任务。`BackgroundService` 是 `IHostedService` 的抽象实现,简化了后台任务的编写,通过 `ExecuteAsync` 方法实现长时间运行的任务逻辑。文章还提供了创建和注册这两个服务的实战步骤,帮助开发者在实际项目中应用这些功能。
|
1月前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
47 1
|
1月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
|
2月前
|
开发框架 监控 前端开发
在 ASP.NET Core Web API 中使用操作筛选器统一处理通用操作
【9月更文挑战第27天】操作筛选器是ASP.NET Core MVC和Web API中的一种过滤器,可在操作方法执行前后运行代码,适用于日志记录、性能监控和验证等场景。通过实现`IActionFilter`接口的`OnActionExecuting`和`OnActionExecuted`方法,可以统一处理日志、验证及异常。创建并注册自定义筛选器类,能提升代码的可维护性和复用性。
|
1月前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架
|
1月前
|
监控 安全 API
Docker + .NET API:简化部署和扩展
Docker + .NET API:简化部署和扩展
39 0
|
1月前
|
监控 安全 API
最完美的扩展Docker + .NET API:简化部署和扩展
最完美的扩展Docker + .NET API:简化部署和扩展
71 0
|
5天前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
34 7