在Ubuntu系统上部署IdentityServer4.Admin项目并配置PostgreSQL数据库

在Ubuntu系统上部署IdentityServer4.Admin项目并配置PostgreSQL数据库

IdentityServer4.Admin The administration for the IdentityServer4 and Asp.Net Core Identity IdentityServer4.Admin 项目地址: https://gitcode.com/gh_mirrors/id/IdentityServer4.Admin

前言

IdentityServer4.Admin是一个基于IdentityServer4的管理界面,提供了对身份认证服务器的可视化管理和配置功能。本文将详细介绍如何在Ubuntu 19.04系统上部署该项目,并将其默认的SQL Server数据库替换为PostgreSQL数据库。

环境准备

1. 安装.NET Core 3.1 SDK

在Ubuntu系统上运行IdentityServer4.Admin项目需要.NET Core 3.1运行环境。以下是安装步骤:

  1. 添加Microsoft包存储库
  2. 安装.NET Core SDK

执行以下命令完成安装:

wget -q https://packages.microsoft.com/config/ubuntu/19.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-3.1

安装完成后,可以通过dotnet --version命令验证安装是否成功。

2. 安装PostgreSQL数据库

IdentityServer4.Admin默认使用SQL Server,但我们可以轻松切换到PostgreSQL。以下是PostgreSQL的安装步骤:

sudo apt update
sudo apt install postgresql postgresql-contrib

安装完成后,PostgreSQL服务会自动启动。为了后续配置方便,我们需要修改默认的postgres用户密码:

sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'postgres';

项目配置

1. 获取项目代码

使用git命令获取项目源代码:

git clone https://github.com/skoruba/IdentityServer4.Admin

2. 数据库连接配置

项目默认使用SQL Server,我们需要修改为PostgreSQL:

  1. 修改src/Skoruba.IdentityServer4.Admin/appsettings.json文件
  2. 修改src/Skoruba.IdentityServer4.STS.Identity/appsettings.json文件

将原有的连接字符串替换为:

"ConnectionStrings": {
    "ConfigurationDbConnection": "Server=localhost; User Id=postgres; Database=is4admin; Port=5432; Password=postgres; SSL Mode=Prefer; Trust Server Certificate=true",
    "PersistedGrantDbConnection": "Server=localhost; User Id=postgres; Database=is4admin; Port=5432; Password=postgres; SSL Mode=Prefer; Trust Server Certificate=true",
    "IdentityDbConnection": "Server=localhost; User Id=postgres; Database=is4admin; Port=5432; Password=postgres; SSL Mode=Prefer; Trust Server Certificate=true",
    "AdminLogDbConnection": "Server=localhost; User Id=postgres; Database=is4admin; Port=5432; Password=postgres; SSL Mode=Prefer; Trust Server Certificate=true",
    "AdminAuditLogDbConnection": "Server=localhost; User Id=postgres; Database=is4admin; Port=5432; Password=postgres; SSL Mode=Prefer; Trust Server Certificate=true"
}

3. 数据库提供程序配置

在以下项目的appsettings.json文件中,修改数据库提供程序为PostgreSQL:

  • Skoruba.IdentityServer4.Admin
  • Skoruba.IdentityServer4.Admin.Api
  • Skoruba.IdentityServer4.STS.Identity

修改内容如下:

"DatabaseProviderConfiguration": {
    "ProviderType": "PostgreSQL"
}

项目运行

1. 启动STS身份服务

在项目目录src/Skoruba.IdentityServer4.STS.Identity中执行:

dotnet run

STS服务将默认监听5000端口。

2. 启动Admin管理界面

在项目目录src/Skoruba.IdentityServer4.Admin中执行:

dotnet run /seed

/seed参数会初始化数据库并创建默认管理员账户。Admin服务将默认监听9000端口。

3. 访问管理界面

打开浏览器访问http://localhost:9000,系统会自动重定向到STS服务进行身份验证。默认的管理员凭据可以在Skoruba.IdentityServer4.Admin项目的identitydata.json文件中找到。

安全注意事项

  1. 本文配置仅适用于开发和测试环境,生产环境需要额外的安全配置
  2. 默认的postgres用户密码过于简单,生产环境必须修改
  3. 建议为不同的服务配置不同的数据库用户,并限制其权限
  4. 生产环境应考虑启用SSL加密数据库连接
  5. 管理员账户密码应在首次登录后立即修改

常见问题解决

  1. 数据库连接失败:检查PostgreSQL服务是否运行,确认连接字符串中的用户名密码是否正确
  2. 端口冲突:可以在appsettings.json中修改ApplicationUrls配置项来更改服务监听端口
  3. 迁移失败:确保已正确配置数据库提供程序类型,并安装了所有必要的NuGet包

通过以上步骤,您已成功在Ubuntu系统上部署了IdentityServer4.Admin项目,并将其配置为使用PostgreSQL数据库。这个配置为开发环境提供了一个良好的起点,但在投入生产使用前,请务必进行全面的安全评估和加固。

IdentityServer4.Admin The administration for the IdentityServer4 and Asp.Net Core Identity IdentityServer4.Admin 项目地址: https://gitcode.com/gh_mirrors/id/IdentityServer4.Admin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翟舟琴Jacob

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值