刚刚发现基于令牌的身份验证的基本工作流程如下:
现在,我或多或少了解流量,但是,我遇到的问题是应用,客户端和服务器。我理解术语服务器表示存储API的位置...这也是应用程序的一部分。但应用程序也可以是从各种平台上的网络应用程序到移动应用程序......换言之,客户端。
因此,应用程序同时包含服务器和客户端是不正确的。那么在上述背景下,每个术语的含义是什么呢?
第二个想法......我想原始令牌是在服务器端生成的,然后将其返回给客户端。这是真的吗?
答案 0 :(得分:1)
这些术语在软件开发中非常重要,因此如果不专注于非常具体的上下文,就很难确定其确切含义。请记住,即使身份验证也可以被视为一个非常广泛的背景。
我会将您建议的工作流程改写为以下内容:
该死的,现在我们有更多的条款,但让我们试着通过提供一些定义来解决这个问题。
首先,更通用的那些:
客户端:从服务器获取供本地使用的信息的应用程序。
凭据:用户名,密码,电子邮件地址 - 用于通信方生成或获取安全令牌的各种方法。
然后在OAuth 2.0和/或OpenID Connect:
的上下文中定义授权服务器:服务器在成功验证资源所有者并获得授权后向客户端发出访问令牌。
资源服务器:托管受保护资源的服务器,能够使用访问令牌接受和响应受保护资源请求。
客户端:代表资源所有者及其授权进行受保护资源请求的应用程序。术语"客户"并不暗示任何特定的实现特征(例如,应用程序是在服务器,桌面还是其他设备上执行)。
(来源:RFC 6749)
尝试定义应用程序甚至没用,但我们应该从其他定义中得出以下结论:
最后,最后一个说明澄清你的上一个问题,是的,访问令牌的创建需要在服务器端进行,因为令牌的创建将伴随某种机制,以确保令牌不能被篡改,实际上是由一个非常有名的实体创建的。对于JWT's的情况,这种机制包括签署令牌,这是通过让服务器知道其他人不知道的秘密来完成的。