有没有办法使用 Openvpn 或 wireguard 设置 oAuth?

有没有办法使用 Openvpn 或 wireguard 设置 oAuth?

我正在寻找构建一组需要单点登录的服务。基本上,您登录我的 oAuth 提供商,即可访问 openvpn 连接(或 wireguard)和网站,无需额外的安全措施,但可能需要进行原始设置。

因此,我的问题是:如何自动化 openVpn,以便我可以执行以下两项操作之一:

  1. 使用令牌而不是密码/用户名来验证我的连接

或者

  1. 使用用户名/密码验证我的连接,然后我可以将其发送给我的 oAuth 提供商,并向客户端返回一个令牌,供其他应用程序使用

答案1

人 openvpn。它是有关 OpenVPN 的权威信息来源。

让我复制粘贴该页面的一部分。我认为这应该完全回答你的问题:

--auth-token令牌

这不是在任何配置文件中直接使用的选项,而是从 --client-connect脚本或--plugin挂接到 OPENVPN_PLUGIN_CLIENT_CONNECTOPENVPN_PLUGIN_CLIENT_CONNECT_V2 调用的脚本中推送此选项。此选项提供了在 OpenVPN 客户端的生命周期内用身份验证令牌替换客户端密码的可能性。

每当重新协商连接并触发--auth-user-pass-verify 脚本或--plugin使用钩子时 OPENVPN_PLUGIN_AUTH_USER_PASS_VERIFY,它都会将此令牌作为密码传递,而不是用户提供的密码。身份验证令牌只能通过完全重新连接来重置,服务器可以向客户端推送新选项。一旦设置了身份验证令牌,用户输入的密码就永远不会被保留。如果 OpenVPN 服务器端拒绝身份验证令牌,客户端将收到并 AUTH_FAIL断开连接。

这样做的目的是启用双因素身份验证方法(例如 HOTP 或 TOTP),而无需在每次重新协商连接时检索新的 OTP 代码。另一个用例是在客户端上缓存身份验证数据,而无需在会话生命周期内将用户密码缓存在内存中。

要使用此功能,--client-connect脚本或--plugin 需要放置

push "auth-token UNIQUE_TOKEN_VALUE"

进入动态配置数据的文件/缓冲区。这将使 OpenVPN 服务器将此值推送到客户端,客户端将本地密码替换为UNIQUE_TOKEN_VALUE

答案2

我在搜索 WireGuard 的类似单点登录要求时遇到了一些参考资料。我将它们列在下面。

答案3

取决于你使用的提供商,但有一个开源的 WireGuard VPN(https://github.com/firezone/firezone) 支持任何具有 OIDC 连接器的 SSO 提供商。

相关内容