摘要:互联网拥有越来越多的重要信息和数据,这也使应用程序和用户的安全变得愈发重要。多因素认证 MFA 和单点登录 SSO,是提升安全性与隐私性的关键技术,能有效防范信息窃取和数据泄露。Authelia 作为一款专注于安全认证的开源认证服务器,能在该领域发挥重要作用。
互联网拥有越来越多的重要信息和数据,这也使应用程序和用户的安全变得愈发重要。多因素认证 MFA 和单点登录 SSO,是提升安全性与隐私性的关键技术,能有效防范信息窃取和数据泄露。Authelia 作为一款专注于安全认证的开源认证服务器,能在该领域发挥重要作用。
Authelia 是一个开源的用于认证和授权的服务器及门户,其代码仓库位于 https://github.com/authelia/authelia。其在信息安全领域扮演着身份与访问管理(IAM)的角色,通过一个 Web 门户为应用程序提供多因素认证和单点登录 SSO 功能。
Authelia 功能强大,拥有多项特色功能:
多种双因素认证方法:支持多种双因素认证方式,包括:支持 FIDO2 WebAuthn 的安全密钥、基于时间的一次性密码、使用 Duo 的移动推送通知等无密码认证:通过 WebAuthn 通行密钥实现无密码认证自助密码重置:用户可自行通过电子邮件确认进行身份验证后重置密码账户封禁机制:当用户尝试登录次数过多时,可对账户进行封禁,保障账户安全细粒度访问控制:使用规则进行细粒度的访问控制,这些规则可匹配诸如子域名、用户、用户组成员身份、请求 URI、请求方法和网络等条件高可用性:使用远程数据库,并以 Redis 作为高可用的键值存储,确保高可用性Kubernetes 支持:兼容多种 Kubernetes 入口控制器,包括 ingress-nginx, Traefik Kubernetes CRD, Traefik Kubernetes Ingress, IstioAuthelia 通常与网络代理层结合使用,包括 nginx, Traefik, Caddy, Skipper, Envoy 和 HAProxy。在部署 Authelia 前需要进行必要的配置,可以参考代码仓库中的 config.template.yml 文件进行,配置项包括:
jwt_secret:如果启用了密码重置流程,该密钥用于对身份验证电子邮件进行签名authentication_backend:选择 LDAP 和 YAML 文件这两种认证后端方式的其中之一storage:选择 SQL 存储方式,测试和轻量级部署推荐使用 SQLite3,而对于生产环境部署,建议使用 PostgreSQLsession:配置 session cookies 和 secret,针对各域名进行 cookie 的保护notifier:用于发送 2FA 注册邮件等,在生产环境中推荐使用 SMTPaccess_control:访问控制策略,默认应为拒绝策略完成配置后,就可以开始部署了。Authelia 支持通过 Docker 进行独立的部署,使用以下的 Docker Compose 配置:
services: authelia: container_name: 'authelia' image: 'docker.io/authelia/authelia:latest' restart: 'unless-stopped' networks: net: aliases: secrets: ['JWT_SECRET', 'SESSION_SECRET', 'STORAGE_PASSWORD', 'STORAGE_ENCRYPTION_KEY'] environment: AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET_FILE: '/run/secrets/JWT_SECRET' AUTHELIA_SESSION_SECRET_FILE: '/run/secrets/SESSION_SECRET' AUTHELIA_STORAGE_POSTGRES_PASSWORD_FILE: '/run/secrets/STORAGE_PASSWORD' AUTHELIA_STORAGE_ENCRYPTION_KEY_FILE: '/run/secrets/STORAGE_ENCRYPTION_KEY' volumes: - '${PWD}/data/authelia/config:/config'其中配置了包括镜像和必须的环境变量等。Authelia 还提供了打包的版本,包括其他的应用和代理,可以通过拉取代码仓库的方式获取最新的发布:
git clone https://github.com/authelia/authelia.gitcd autheliagit checkout $(git describe --tags `git rev-list --tags --max-count=1`)Authelia 还可以使用 Kubernetes 部署,作为微服务的入门认证,一个样例的 pod 配置如下:
---apiVersion: v1kind: Podmetadata: name: autheliaspec: enableServiceLinks: false...Authelia 作为一款开源的 2FA 与 SSO 认证服务器,具有丰富的功能和灵活的部署方式。它的出现为应用程序和用户提供了可靠的安全保障,降低了安全风险。
Authelia 适用于各种需要增强安全认证的场景,如企业内部应用、网站登录系统等,通过集成 Authelia,企业可以轻松实现多因素认证和单点登录,提高用户体验和安全性。
随着互联网的持续发展,网络安全需求将不断增长。Authelia 丰富的配置选项和功能,使其能够适应不同规模和需求的企业,在安全认证领域具有广阔的发展前景。
来源:每日开源代码