前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Caddy Security 为你的网站增加自动置登录鉴权

使用Caddy Security 为你的网站增加自动置登录鉴权

作者头像
小刀c
发布2023-10-23 10:46:50
3520
发布2023-10-23 10:46:50
举报
文章被收录于专栏:cc logcc log

使用Caddy Security 为你的网站增加自动置登录鉴权

6/4/2023, 4:31:59 PM

Last updated on 6/5/2023, 2:35:49 PM


toc

Intro

很多情况下网站登录后访问是必不可少的,如果你的需求简单或者懒得开发。使用Caddy Security可以很简单的为你解决问题。

使用Caddy作为你网站的前置代理

Caddy 是一个Go语言写的开源Web Server,功能挺强大。支持反向代理,以及自动化的HTTPS。很多人也用来替代Nginx,因为它可以自动申请续费letsencrypt之类的免费证书,而且配置也挺简单。

代码语言:javascript
复制
yourdamain.com {
	encode zstd gzip
	reverse_proxy localhost:8080
}

使用Caddy Security增加自动置登录鉴权

Caddy同时也支持多内置和第三方的模块。其中的Caddy Security 模块就是今天的主角,它为Caddy带来了很丰富的登录方式。

Caddy Security 登录功能
Caddy Security 登录功能

下面就是点流水账式的折腾记录:

安装Caddy Security

Caddy Security属于第三方模块,需要单独安装。Caddy 官方似乎推荐使用xcaddy来安装,但是我没有成功,而是通过官方的集成下载方式搞定。

Caddy官方的集成下载方式
Caddy官方的集成下载方式

配置到path,或者 /path/to/caddy start也一样工作

配置Caddy Security

这里给出账号密码登录的例子。可以按照官方local鉴权的方式, 能配差不多。

这里是我的配置:

代码语言:javascript
复制
{
	order authenticate before respond
	order authorize before basicauth
	
	security {
		local identity store localdb {
			realm local
			path /path/to/users.json
		}

		authentication portal myportal {
			crypto key sign-verify {env.JWT_SHARED_KEY}
			enable identity store localdb
			cookie domain youdomain.com
			ui {

				custom html header path /path/to/custom-head.html

				links {
					"Go App" https://app.youdomain.com icon "las la-binoculars"
				}
				custom js path /root/caddy/custom.js
			}

			transform user {
    				suffix match email @youdomain.com
    				add role authp/user
  			}
		}
		authorization policy admins_policy {
			set auth url http://auth.youdomain.com
			allow roles authp/admin authp/user
			crypto key verify {env.JWT_SHARED_KEY}
		}
	}
}

auth.youdomain.com {
	 authenticate with myportal
}

app.youdomain.com {
	authorize with admins_policy
	encode zstd gzip
	reverse_proxy localhost:8080
}
  • 上面app.youdomain.com是业务网站,auth.youdomain.com是独立的鉴权页面。如果你想一个域名,可以尝试利用caddyroute的功能。
  • 想要添加用户,可以按照Caddy Security local 密码指示 指示,添加新用户到/path/to/users.json中,注意用户权限也可以设为authp/user
  • 支持自定义UI
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Caddy Security 为你的网站增加自动置登录鉴权
    • toc
    • Intro
      • 使用Caddy作为你网站的前置代理
        • 使用Caddy Security增加自动置登录鉴权
          • 安装Caddy Security
          • 配置Caddy Security
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
      http://www.vxiaotou.com