OpenZiti zrok项目OAuth公共前端配置指南
前言
在现代网络应用中,身份验证是确保资源安全访问的关键环节。OpenZiti zrok项目从v0.4.7版本开始,为公共前端(zrok access public)集成了OAuth认证功能,支持Google和GitHub两种主流OAuth提供商。本文将详细介绍如何为zrok配置OAuth公共前端。
OAuth公共前端概述
zrok的OAuth集成允许您创建公共共享资源,并要求用户通过Google或GitHub账户进行身份验证。此外,您还可以限制允许访问的电子邮件域名,确保只有特定组织的用户能够访问您的共享资源。
核心功能特点
- 支持Google和GitHub两种OAuth提供商
- 可配置电子邮件域名白名单
- 基于HTTP监听器处理OAuth提供商的重定向
- 灵活的认证策略配置
前期规划
在开始配置前,您需要做好以下准备工作:
- DNS配置:为OAuth前端配置一个可公开访问的DNS名称
- 端口规划:确定用于OAuth前端监听的端口
- 网络可达性:确保该端口对终端用户可访问
这个监听器地址将作为"重定向URL"配置到Google和GitHub的OAuth客户端中。
Google OAuth客户端配置详解
配置OAuth同意屏幕
在Google Cloud控制台中,按以下步骤操作:
- 导航至"API和服务 > 凭据 > OAuth同意屏幕"
- 为您的zrok公共前端设置应用名称和品牌信息
- 配置授权访问的域名范围
- 提供开发者联系信息
- 添加非敏感范围
../auth/userinfo.email
,这是关键步骤,它允许zrok获取已认证用户的电子邮件地址
创建OAuth 2.0客户端ID
- 在Google Cloud控制台中,导航至"API和服务 > 凭据 > 创建凭据"
- 从下拉菜单中选择"OAuth客户端ID"
- 应用类型选择"Web应用程序"
- 在"授权重定向URI"中,输入您的zrok OAuth前端地址,并在末尾添加
/google/oauth
完成后,请妥善保存客户端ID和客户端密钥,这些信息将用于配置您的frontend.yml
文件。
GitHub客户端配置指南
- 通过GitHub账户设置注册新的OAuth应用
- 导航至"设置 > 开发者设置 > OAuth应用 > 注册新应用"
- 在"授权回调URL"中配置您的OAuth前端地址,并在末尾添加
/github/oauth
- 创建新的客户端密钥
同样,请保存好客户端ID和客户端密钥,这些将用于后续配置。
公共前端配置
在frontend.yml
配置文件中,新增了一个oauth
配置段:
oauth:
bind_address: 0.0.0.0:8181
redirect_url: https://oauth.example.com
cookie_domain: example.com
hash_key: "自定义的安全密钥字符串"
providers:
- name: google
client_id: "您的Google客户端ID"
client_secret: "您的Google客户端密钥"
- name: github
client_id: "您的GitHub客户端ID"
client_secret: "您的GitHub客户端密钥"
配置参数说明
bind_address
:OAuth前端绑定的IP和端口redirect_url
:OAuth前端请求重定向的基础URLcookie_domain
:存储认证cookie的域名hash_key
:用于保护认证负载的唯一字符串providers
:支持的OAuth提供商列表,目前支持google和github
为公共共享启用OAuth
配置完成后,您可以通过以下命令参数为公共共享启用OAuth:
zrok share public --backend-mode web --oauth-provider github --oauth-email-address-patterns '*@example.com' ~/public
可用参数说明
--oauth-provider
:指定OAuth提供商[google, github]--oauth-email-address-patterns
:允许访问的电子邮件域名模式(支持glob模式)--oauth-check-interval
:认证检查的最大间隔时间(默认3小时)
最佳实践建议
- 安全性:确保
hash_key
足够复杂且唯一 - 域名限制:合理使用电子邮件域名模式限制访问范围
- HTTPS:生产环境务必使用HTTPS保护认证流程
- 监控:定期检查OAuth前端的运行状态
- 密钥管理:妥善保管客户端密钥,避免泄露
总结
通过本文的指导,您应该已经掌握了如何在OpenZiti zrok项目中配置OAuth公共前端。这一功能为您的共享资源提供了企业级的身份验证能力,同时保持了zrok原有的易用性特点。随着zrok项目的持续发展,未来还将支持更多身份验证策略,为用户提供更丰富的安全选项。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考