組件分享之后端組件——Go開(kāi)發(fā)的單點(diǎn)登錄應(yīng)用組件authelia
背景
近期正在探索前端、后端、系統(tǒng)端各類(lèi)常用組件與工具今缚,對(duì)其一些常見(jiàn)的組件進(jìn)行再次整理一下消别,形成標(biāo)準(zhǔn)化組件專(zhuān)題抛蚤,后續(xù)該專(zhuān)題將包含各類(lèi)語(yǔ)言中的一些常用組件。歡迎大家進(jìn)行持續(xù)關(guān)注寻狂。
組件基本信息
- 組件:authelia
- 開(kāi)源協(xié)議:Apache-2.0 License
- 官方文檔:https://www.authelia.com/docs
內(nèi)容
本節(jié)分享一個(gè)Web應(yīng)用程序組件岁经,單點(diǎn)登錄authelia,它是一個(gè)開(kāi)源的身份驗(yàn)證和授權(quán)服務(wù)器蛇券,可以通過(guò)web門(mén)戶(hù)對(duì)我們的應(yīng)用程序提供雙因素身份驗(yàn)證和單點(diǎn)登錄(SSO)缀壤。它可以搭配nginx、Traefik 或HAProxy等反向代理進(jìn)行使用怀读,可以讓其前置機(jī)(反向代理)清楚知道哪些應(yīng)該允許請(qǐng)求诉位、哪些請(qǐng)求重定向到authelia進(jìn)行身份驗(yàn)證。具體可查看官方文檔
以下是官方提供的架構(gòu)圖:
實(shí)際使用效果如下圖所示:
具體功能如下:
- 幾種第二因素方法:
- 使用YubiKey等設(shè)備支持FIDO2 Webauthn的安全密鑰菜枷。
- 基于時(shí)間的一次性密碼 與兼容的身份驗(yàn)證器應(yīng)用程序苍糠。
- 使用Duo的移動(dòng)推送通知。
- 使用電子郵件確認(rèn)進(jìn)行身份驗(yàn)證的密碼重置啤誊。
- 無(wú)效身份驗(yàn)證嘗試次數(shù)過(guò)多后的訪(fǎng)問(wèn)限制岳瞭。
- 使用匹配子域、用戶(hù)蚊锹、用戶(hù)組成員資格瞳筏、請(qǐng)求 uri、請(qǐng)求方法和網(wǎng)絡(luò)等條件的規(guī)則進(jìn)行細(xì)粒度訪(fǎng)問(wèn)控制牡昆。
- 根據(jù)規(guī)則在單因素和雙因素策略之間進(jìn)行選擇姚炕。
- 支持受單因素策略保護(hù)的端點(diǎn)的基本身份驗(yàn)證。
- 使用遠(yuǎn)程數(shù)據(jù)庫(kù)和 Redis 作為高可用 KV 存儲(chǔ)的高可用性丢烘。
- 使用ForwardAuth中間件與Traefik開(kāi)箱即用 兼容柱宦。
- 通過(guò)他們的 Swag容器以及 指南從LinuxServer 精心策劃的配置。
- Kubernetes 支持:
- 開(kāi)箱即用與ingress-nginx播瞳、 Traefik Kubernetes CRD和 Traefik Kubernetes Ingress Kubernetes 入口控制器兼容掸刊。
- 使用我們的Charts通過(guò) Helm 安裝的 Beta 支持。
- 對(duì)OpenID Connect的 Beta 支持赢乓。
本文聲明:
知識(shí)共享許可協(xié)議
本作品由 cn華少 采用 知識(shí)共享署名-非商業(yè)性使用 4.0 國(guó)際許可協(xié)議 進(jìn)行許可忧侧。