.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月前
|
开发框架 监控 .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
|
2月前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
103 1
|
1月前
|
消息中间件 开发框架 .NET
.NET 8 强大功能 IHostedService 与 BackgroundService 实战
【11月更文挑战第7天】本文介绍了 ASP.NET Core 中的 `IHostedService` 和 `BackgroundService` 接口及其用途。`IHostedService` 定义了 `StartAsync` 和 `StopAsync` 方法,用于在应用启动和停止时执行异步操作,适用于资源初始化和清理等任务。`BackgroundService` 是 `IHostedService` 的抽象实现,简化了后台任务的编写,通过 `ExecuteAsync` 方法实现长时间运行的任务逻辑。文章还提供了创建和注册这两个服务的实战步骤,帮助开发者在实际项目中应用这些功能。
|
2月前
|
开发框架 NoSQL MongoDB
C#/.NET/.NET Core开发实战教程集合
C#/.NET/.NET Core开发实战教程集合
|
2月前
|
监控 安全 API
Docker + .NET API:简化部署和扩展
Docker + .NET API:简化部署和扩展
44 0
|
2月前
|
监控 安全 API
最完美的扩展Docker + .NET API:简化部署和扩展
最完美的扩展Docker + .NET API:简化部署和扩展
92 0
|
3月前
|
SQL 关系型数据库 数据库
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
七天.NET 8操作SQLite入门到实战详细教程(选型、开发、发布、部署)
|
4月前
|
测试技术 API 开发者
.NET单元测试框架大比拼:MSTest、xUnit与NUnit的实战较量与选择指南
【8月更文挑战第28天】单元测试是软件开发中不可或缺的一环,它能够确保代码的质量和稳定性。在.NET生态系统中,MSTest、xUnit和NUnit是最为流行的单元测试框架。本文将对这三种测试框架进行全面解析,并通过示例代码展示它们的基本用法和特点。
419 8
|
4月前
|
开发框架 缓存 前端开发
实战.NET Framework 迁移到 .NET 5/6
从.NET Framework 迁移到.NET 5/6 是一次重要的技术革新,涵盖开发环境与应用架构的全面升级。本文通过具体案例详细解析迁移流程,包括评估现有应用、利用.NET Portability Analyzer 工具识别可移植代码、创建新项目、逐步迁移代码及处理依赖项更新等关键步骤。特别关注命名空间调整、JSON 序列化工具更换及数据库访问层重构等内容,旨在帮助开发者掌握最佳实践,确保迁移过程平稳高效,同时提升应用性能与可维护性。
151 2
|
4月前
|
开发框架 监控 安全
.NET 应用程序安全背后究竟隐藏着多少秘密?从编码到部署全揭秘!
【8月更文挑战第28天】在数字化时代,.NET 应用程序的安全至关重要。从编码阶段到部署,需全面防护以保障系统稳定与用户数据安全。开发者应遵循安全编码规范,实施输入验证、权限管理和加密敏感信息等措施,并利用安全测试发现潜在漏洞。此外,部署时还需选择安全的服务器环境,配置 HTTPS 并实时监控应用状态,确保全方位防护。
61 3

热门文章

最新文章