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

简介: 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

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


目录
相关文章
|
4月前
|
开发框架 .NET C#
ASP.NET Core Blazor 路由配置和导航
大家好,我是码农刚子。本文系统介绍Blazor单页应用的路由机制,涵盖基础配置、路由参数、编程式导航及高级功能。通过@page指令定义路由,支持参数约束、可选参数与通配符捕获,结合NavigationManager实现页面跳转与参数传递,并演示用户管理、产品展示等典型场景,全面掌握Blazor路由从入门到实战的完整方案。
417 6
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:<https://github.com/khellang/Scrutor>
388 5
|
11月前
|
JSON 数据格式
【Azure Fabric Service】演示使用PowerShell命令部署SF应用程序(.NET)
本文详细介绍了在中国区微软云Azure上使用Service Fabrics服务时,通过PowerShell命令发布.NET应用的全过程。由于Visual Studio 2022无法直接发布应用,需借助PowerShell脚本完成部署。文章分三步讲解:首先在Visual Studio 2022中打包应用部署包,其次连接SF集群并上传部署包,最后注册应用类型、创建实例并启动服务。过程中涉及关键参数如服务器证书指纹和服务端证书指纹的获取,并附带图文说明,便于操作。参考官方文档,帮助用户成功部署并运行服务。
351 73
|
12月前
|
人工智能
D1net阅闻 | 奥特曼:把期望降低100倍,OpenAI下月不会部署AGI
D1net阅闻 | 奥特曼:把期望降低100倍,OpenAI下月不会部署AGI
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
335 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
12月前
|
人工智能 自动驾驶 机器人
D1net阅闻|国务院国资委部署深化中央企业“AI+”专项行动
D1net阅闻|国务院国资委部署深化中央企业“AI+”专项行动
|
开发框架 算法 中间件
ASP.NET Core 中的速率限制中间件
在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
336 1
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
400 3
|
移动开发 中间件 .NET
ASP.NET Core 2 学习笔记(三)中间件
原文:ASP.NET Core 2 学习笔记(三)中间件 之前ASP.NET中使用的HTTP Modules及HTTP Handlers,在ASP.NET Core中已不复存在,取而代之的是Middleware。
1099 60
|
开发框架 前端开发 .NET
ASP.NET Core 核心特性学习笔记「下」
ASP.NET Core 核心特性学习笔记「下」