【发布时间】:2015-07-12 13:17:09
【问题描述】:
我正在开发一个命令行实用程序,它需要通过 REST API 访问后端服务器。
我正在尝试避免实现自己的身份验证机制并使用一种(或多种)公共身份验证服务(如 google、Facebook、amazon)。
我正在尝试让客户端接受凭据并对身份验证提供程序进行身份验证,并在不要求用户打开 Web 浏览器并返回令牌的情况下执行此操作。客户端将开源以避免信任问题(即用户凭据不会发送到我的后端服务器)。
我对授权不感兴趣,我只关心对我的后端服务器进行身份验证,而不需要用户保留另一组凭据(并且不将用户凭据发送到我的后端服务器)。
如何让我的客户端通过身份验证提供程序进行身份验证并获得一个令牌以与我的服务器通信不让用户使用网络浏览器?
【问题讨论】:
-
旁注:“我试图避免实现自己的身份验证机制并使用一个(或多个)公共身份验证服务。”这是一个绝妙的主意。看好你。我不太明白为什么你需要进行身份验证,除非我误解了你在做什么。另一个旁注:“客户端将开源以避免信任问题”仍然存在零信任,因为谁说您正在运行的程序是您正在显示的源代码的程序?最终用户都知道,您在 prod 版本中有一些额外的恶意代码行
-
我需要身份验证的原因是因为服务器将公开,我只需要限制某些用户的访问。客户端很可能使用解释型语言,因此用户可以查看代码、从 github 下载代码甚至编写自己的客户端(鼓励这样做),因为与服务器的接口也将是开源的.
-
啊,所以我完全误解了你在做什么。那好吧。此外,可能会将一个文件返回给外部请求,而将另一个文件返回给内部请求,因此您的代码仍然可能是恶意的。
-
我不会将其作为“答案”发布,因为我发现这篇文章试图验证我的理解,但密码凭据流不正是您正在寻找的吗?跨度>