.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:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
目录
相关文章
|
27天前
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:<https://github.com/khellang/Scrutor>
44 5
|
12天前
|
开发框架 搜索推荐 算法
一个包含了 50+ C#/.NET编程技巧实战练习教程
一个包含了 50+ C#/.NET编程技巧实战练习教程
65 18
|
2月前
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
49 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
1月前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
29 3
|
12天前
|
开发框架 算法 中间件
ASP.NET Core 中的速率限制中间件
在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
30 0
|
2月前
|
消息中间件 开发框架 .NET
.NET 8 强大功能 IHostedService 与 BackgroundService 实战
【11月更文挑战第7天】本文介绍了 ASP.NET Core 中的 `IHostedService` 和 `BackgroundService` 接口及其用途。`IHostedService` 定义了 `StartAsync` 和 `StopAsync` 方法,用于在应用启动和停止时执行异步操作,适用于资源初始化和清理等任务。`BackgroundService` 是 `IHostedService` 的抽象实现,简化了后台任务的编写,通过 `ExecuteAsync` 方法实现长时间运行的任务逻辑。文章还提供了创建和注册这两个服务的实战步骤,帮助开发者在实际项目中应用这些功能。
|
2月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
297 7
|
2月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
130 4
|
2月前
|
网络协议 安全 网络性能优化
了解访问控制列表 (ACL):概念、类型与应用
了解访问控制列表 (ACL):概念、类型与应用
111 2
|
2月前
|
网络虚拟化 数据安全/隐私保护 数据中心
对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令
本文对比了思科和华为网络设备的基本配置、接口配置、VLAN配置、路由配置、访问控制列表配置及其他重要命令,帮助网络工程师更好地理解和使用这两个品牌的产品。通过详细对比,展示了两者的相似之处和差异,强调了持续学习的重要性。
66 2

热门文章

最新文章

下一篇
开通oss服务