OpenZiti zrok项目OAuth公共前端配置指南

OpenZiti zrok项目OAuth公共前端配置指南

zrok Geo-scale, next-generation peer-to-peer sharing platform built on top of OpenZiti. zrok 项目地址: https://gitcode.com/gh_mirrors/zr/zrok

前言

在现代网络应用中,身份验证是确保资源安全访问的关键环节。OpenZiti zrok项目从v0.4.7版本开始,为公共前端(zrok access public)集成了OAuth认证功能,支持Google和GitHub两种主流OAuth提供商。本文将详细介绍如何为zrok配置OAuth公共前端。

OAuth公共前端概述

zrok的OAuth集成允许您创建公共共享资源,并要求用户通过Google或GitHub账户进行身份验证。此外,您还可以限制允许访问的电子邮件域名,确保只有特定组织的用户能够访问您的共享资源。

核心功能特点

  1. 支持Google和GitHub两种OAuth提供商
  2. 可配置电子邮件域名白名单
  3. 基于HTTP监听器处理OAuth提供商的重定向
  4. 灵活的认证策略配置

前期规划

在开始配置前,您需要做好以下准备工作:

  1. DNS配置:为OAuth前端配置一个可公开访问的DNS名称
  2. 端口规划:确定用于OAuth前端监听的端口
  3. 网络可达性:确保该端口对终端用户可访问

这个监听器地址将作为"重定向URL"配置到Google和GitHub的OAuth客户端中。

Google OAuth客户端配置详解

配置OAuth同意屏幕

在Google Cloud控制台中,按以下步骤操作:

  1. 导航至"API和服务 > 凭据 > OAuth同意屏幕"
  2. 为您的zrok公共前端设置应用名称和品牌信息
  3. 配置授权访问的域名范围
  4. 提供开发者联系信息
  5. 添加非敏感范围../auth/userinfo.email,这是关键步骤,它允许zrok获取已认证用户的电子邮件地址

创建OAuth 2.0客户端ID

  1. 在Google Cloud控制台中,导航至"API和服务 > 凭据 > 创建凭据"
  2. 从下拉菜单中选择"OAuth客户端ID"
  3. 应用类型选择"Web应用程序"
  4. 在"授权重定向URI"中,输入您的zrok OAuth前端地址,并在末尾添加/google/oauth

完成后,请妥善保存客户端ID和客户端密钥,这些信息将用于配置您的frontend.yml文件。

GitHub客户端配置指南

  1. 通过GitHub账户设置注册新的OAuth应用
  2. 导航至"设置 > 开发者设置 > OAuth应用 > 注册新应用"
  3. 在"授权回调URL"中配置您的OAuth前端地址,并在末尾添加/github/oauth
  4. 创建新的客户端密钥

同样,请保存好客户端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前端请求重定向的基础URL
  • cookie_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小时)

最佳实践建议

  1. 安全性:确保hash_key足够复杂且唯一
  2. 域名限制:合理使用电子邮件域名模式限制访问范围
  3. HTTPS:生产环境务必使用HTTPS保护认证流程
  4. 监控:定期检查OAuth前端的运行状态
  5. 密钥管理:妥善保管客户端密钥,避免泄露

总结

通过本文的指导,您应该已经掌握了如何在OpenZiti zrok项目中配置OAuth公共前端。这一功能为您的共享资源提供了企业级的身份验证能力,同时保持了zrok原有的易用性特点。随着zrok项目的持续发展,未来还将支持更多身份验证策略,为用户提供更丰富的安全选项。

zrok Geo-scale, next-generation peer-to-peer sharing platform built on top of OpenZiti. zrok 项目地址: https://gitcode.com/gh_mirrors/zr/zrok

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋虎辉Mandy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值