有没有什么解决方案可以使用 Google ID 进行 OpenVPN 身份验证?

有没有什么解决方案可以使用 Google ID 进行 OpenVPN 身份验证?

或者,也许是任何 oauth?

我能找到的只有使用谷歌的双因素身份验证。但我想使用 Google Apps 基础进行 OpenVPN 身份验证。

我相信可以制作类似 gitlab 的东西。您可以将证书放在那里,然后无需登录和密码即可使用它。

答案1

在寻找解决方案时,我遇到了。它自动在 OAuth 后创建 OpenVPN 配置文件并支持 MFA。它还有一个用于用户管理的管理控制台。这是一个博客文章来自开发人员概述其用例和功能。

更新日期:2019 年 6 月 -普里通尔现在是我要用的解决方案。它支持在 Google Auth 后自动生成 OpenVPN 配置文件,并提供跨平台客户端,通过唯一的 URI 轻松设置。用户无需通过 Google 进行身份验证即可连接(可能需要 PIN),这对某些人来说可能是一个缺点,但我发现对于较小的团队来说,它的易用性非常好。

答案2

我认为没有好的办法来做到这一点。问题在于,Google 支持的身份验证方法(例如 OAuth)实际上是针对 Web 应用程序进行身份验证的。关键在于,您(作为应用程序用户)永远不会将您的凭据提供给第三方网站。该网站会将您引导至 Google 的身份验证页面,您可以登录该页面并授权第三方网站。

由于 OpenVPN 不是基于 Web 的应用程序,我认为以合理的方式实现这一点几乎是不可能的。基本上,您必须编写一个自定义的 OpenVPN 身份验证模块,该模块会访问 Google 的 OAuth API,请求身份验证令牌,然后向用户显示一个特殊的 URL,用户必须访问该 URL,然后登录并获取访问代码,然后他们必须将该代码输入到 OpenVPN 身份验证中,这样它就可以返回到您的 OpenVPN 身份验证模块,然后返回 Google 以获得对您进行身份验证的“赞成”或“反对”结果。如果这听起来很复杂,那是因为它确实如此。

假设您提到 Google Apps 意味着您正在使用付费版 Google Apps(现在称为 Google Apps for Work),那么您最好的选择可能是设置单点登录 (SSO),其中您的内部身份管理系统是真实来源,并且 Google Apps 和您的 OpenVPN 系统都通过它进行身份验证。您只需谷歌搜索即可了解有关 Google Apps SSO 的更多信息。请注意,这不一定是一个简单的过程,并且通常需要一些努力才能实现。

基本上,您需要一种方法来向 OpenVPN 提供您的凭据,然后让它代表您进行身份验证。这仅适用于您的用户信任其凭据给应用程序(在本例中为 VPN)的情况。这适用于企业身份验证,但不符合 Google 的愿​​景,因为存在不受信任的应用程序。

相关内容