frp oidc frp使用oidc认证和搭建, frp使用oidc 认证的oidc 服务端搭建

介绍

  • 这个项目是一个使用 .NetCore 实现的 OpenID Connect (OIDC) 服务端。它可以帮助你快速地在你的应用中集成 OIDC 认证。
  • Frp配置可参见下方:Frp配置示例

项目地址和源码获取

github: https://github.com/liangrunze/OidcAuthServer

环境要求

  • .NET Core 3.1

安装

首先,你需要克隆这个仓库到你的本地环境:

进入项目目录并使用 .NET CLI 进行构建:

cd ./OidcAuthServer
dotnet build

配置和运行

你需要在 appsettings.json 文件中设置你的数据库连接字符串和 OIDC 参数。

{
  "IssuerUri": "https://localhost",//issuer地址,需要和外部访问地址一致
  "OidcClients": [
    {
      "ClientWebHomepage": "", //Oidc授权客户端主页
      "ClientId": "B90B1793-332A-49E4-8658-5A71503046B8", //客户端id,可自定义
      "ClientName": "frpc-proxy", //客户端名称,可自定义
      "AllowedGrantTypes": "client_credentials", //允许的授权类型
      "RequireConsent": false,
      "AllowedScopes": [ "profile", "openid", "email", "api-1" ], //允许访问的域
      "FrontChannelLogoutSessionRequired": true,
      "RequirePkce": false,
      "ClientSecrets": "c4ba5449-b604-49e1-9c8d-b3adb73cf566", //客户端的Secrets,注册的客户端需要保持一致
      "OidcLoginCallback": "/oidc/login-callback",
      "OidcFrontChannelLogoutCallback": "/oidc/front-channel-logout-callback"
    }
  ]
}

快速运行
你可以使用以下命令来运行你的应用:

dotnet run

然后,你可以在浏览器中访问 http://ip/ 来查看你的应用。访问 http://ip/.well-known/openid-configuration来查看oidc的配置信息

环境变量

监听https需添加环境变量ENABLE_SSL,并且将certificate文件夹拷贝至服务运行目录(文件中提供了自生成证书和密钥,不推荐用于正式环境),此时服务会监听443和80端口

set ENABLE_SSL=True
dotnet run

####调试
如遇到配置连接等问题,可设置环境变量 ASPNETCORE_ENVIRONMENT来打开调试信息,这时打开http://ip/会显示debug信息
同时可查看控制台输出内容,可配合检查问题

set ASPNETCORE_ENVIRONMENT=Development
dotnet run

Docker

Docker 编译

docker build -t oidc-server:1.0.0 .

此时会生成oidc-server的镜像

快速启动一个oidc服务

docker run --restart=always -p 80:80  -d  --name oidc-server oidc-server:1.0.0

你可以在浏览器中访问 http://ip/ 来查看你的应用。访问 http://ip/.well-known/openid-configuration来查看oidc的配置信息。

自定义配置

新建文件 appsettings.json,将仓库中的appsettings.json文件拷贝并修改

docker run --restart=always -p 80:80  -d -v /you-appsetting-path/appsettings.json:/app/appsettings.json  --name oidc-server oidc-server:1.0.0

开启调试

这时打开http://ip/会显示debug信息
同时可运行docker logs dockerid,可配合检查问题

docker run --restart=always -p 80:80  -d -e ASPNETCORE_ENVIRONMENT=Development --name oidc-server oidc-server:1.0.0

启动HTTPS\http

如果想要只启动HTTP,可设置ENABLE_SSL=false
使用下方命令可启动HTTPS端口,需要将你的证书挂载至指定目录(只支持pfx格式,同时证书名称和密钥文件名称不可修改)

docker run --restart=always -p 80:80 -p 443:443 -d -e ENABLE_SSL=True -v /you-cert-path/cert:/app/certificate --name oidc-server oidc-server:1.0.0

Frp配置示例

# frps.toml
#完整配置:
#https://github.com/fatedier/frp/blob/dev/conf/frps_full_example.toml
auth.method = "oidc"
auth.oidc.issuer = "https://localhost:80" #你的oidc-server地址 请注意:结尾 "/" 需要和appsettings.json 中“IssuerUri”保持一致
auth.oidc.audience = "api" #可修改
auth.oidc.skipExpiryCheck = false
auth.oidc.skipIssuerCheck = false
# frpc.toml
#完整配置:
#https://github.com/fatedier/frp/blob/dev/conf/frpc_full_example.toml
auth.method = "oidc"
auth.oidc.clientID = "B90B1793-332A-49E4-8658-5A71503046B8" # Replace with OIDC client ID
auth.oidc.clientSecret = "c4ba5449-b604-49e1-9c8d-b3adb73cf566"
auth.oidc.audience = "api" #可修改
auth.oidc.scope ="api-1"
auth.oidc.tokenEndpointURL = "https://localhost:80/connect/token"#你的oidc-server地址,/connect/token是固定的

frp 运行示例

frp 获取:https://github.com/fatedier/frp/
运行

frps -c ./frp-example/frps.toml
frpc -c ./frp-example/frpc.toml

或使用docker运行

  • 客户端:
    https://hub.docker.com/r/snowdreamtech/frpc

  • 服务端:
    https://hub.docker.com/r/snowdreamtech/frps

项目链接

https://github.com/liangrunze/OidcAuthServer

参考链接

1.Authentication and Authorization: http://www.cnblogs.com/linianhui/category/929878.html

2.ids4 and owin: https://github.com/linianhui/example-oidc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值