Authelia:给你的应用加一层统一认证网关
文章目录Authelia给你的应用加一层统一认证网关1、 这东西解决什么问题2、 支持哪些认证方式3、 兼容哪些反向代理4、 权限控制能做到什么程度5、 部署方式6、 OpenID Connect7、 适合什么场景Authelia给你的应用加一层统一认证网关Authelia 在 GitHub 上拿到了 28K Star。这是一个开源的认证授权服务器专门解决一个问题给内部应用统一加上登录和权限控制。它不直接暴露在互联网上而是配合反向代理工作充当所有应用的认证网关。1、 这东西解决什么问题公司内部通常有一堆服务GitLab、Grafana、Jenkins、Portainer……每个都有自己的登录系统有的甚至没有。管理十几套账号密码用户体验差安全也没法统一保障。Authelia 的做法是在反向代理层面拦截所有请求统一处理认证。用户只需登录一次就能访问所有受保护的应用。2、 支持哪些认证方式Authelia 的认证分两层。第一层是账号密码这是基础。第二层是双因素认证支持多种方式安全密钥YubiKey 这类 FIDO2 设备、手机上的 TOTP 验证码、Duo 推送通知。还支持 WebAuthn Passkeys也就是无密码登录。对于不需要双因素的场景可以配置单因素策略用基本认证就够了。3、 兼容哪些反向代理这是 Authelia 能落地的关键。它支持 nginx、Traefik、Caddy、HAProxy、Envoy、Skipper基本上主流的反向代理都覆盖了。拿 Traefik 来说通过 ForwardAuth 中间件就能接入配置几行的事。Caddy 用 forward_auth 指令也是一样简单。官方还和 LinuxServer 合作在他们的 SWAG 容器里直接内置了支持。4、 权限控制能做到什么程度Authelia 的权限规则可以按多个维度配置子域名、用户、用户组、请求路径、请求方法、网络来源。举个例子你可以让开发团队访问 Grafana 和 Jenkins但只有运维能进 Portainer。同一条规则还能区分单因素和双因素灵活度够用。5、 部署方式Docker Compose 是最快的方式。官方提供了两套模板Local 用自签证书适合在内网测试Lite 接入 Let’s Encrypt适合暴露到外网的场景。生产环境建议上 Kubernetes。Authelia 支持 ingress-nginx、Traefik CRD、Istio、Envoy Gateway 等多种 Ingress Controller还能用 Helm Chart 部署。高可用方面后端支持远程数据库和 Redis能水平扩展。6、 OpenID ConnectAuthelia 已经通过了 OpenID Certified 认证支持 Basic OP、Implicit OP、Hybrid OP 等多种 profile。这意味着它不只能做反向代理层面的认证还能作为 OpenID Provider给支持 OIDC 的应用提供标准的单点登录。对于需要对接第三方 SaaS 或者微服务架构的场景这个能力很实用。7、 适合什么场景内部服务多需要统一登录入口的团队已经在用 nginx 或 Traefik 做反向代理想加认证层的场景需要双因素认证但不想每个应用单独集成的用 Kubernetes 管理服务需要和 Ingress 对接的需要双因素认证但不想每个应用单独集成的用 Kubernetes 管理服务需要和 Ingress 对接的