我有一个应用程序,提供了一个API。 这个程序是OAuth2用户提供。
我想用一个客户端唯一的应用程序访问此API(读写)。 我使用JSO使它更容易些。
它的伟大工程。
关键是,我没有进入我的客户在任何地方的秘密(我在我的应用程序注册的应用程序的)。 我明白为什么,那么这将是提供给任何人。
所以,如果我可以毫不客户端秘密访问我的API,你能不能给我解释一下什么是它的目的是什么?
我有一个应用程序,提供了一个API。 这个程序是OAuth2用户提供。
我想用一个客户端唯一的应用程序访问此API(读写)。 我使用JSO使它更容易些。
它的伟大工程。
关键是,我没有进入我的客户在任何地方的秘密(我在我的应用程序注册的应用程序的)。 我明白为什么,那么这将是提供给任何人。
所以,如果我可以毫不客户端秘密访问我的API,你能不能给我解释一下什么是它的目的是什么?
客户端秘密是在1.0的OAuth用于签署请求,所以它被要求。 有些OAuth2用户服务器(如谷歌Web服务器API)所需的客户端机密被发送到接收访问令牌(无论是从请求令牌或刷新令牌)。
OAuth 2.0用户已显著减少客户端机密的作用,但它仍然传承下去为使用它的服务器。
这次讨论提供了为什么客户端秘密是不是客户端应用程序的服务器端应用程序更重要的一个很好的解释。 摘录:
Web应用程序[服务器端应用程序]使用客户的秘密,因为他们代表了巨大的攻击向量。 让我们说别人毒害DNS条目,并设置了一个流氓程序“极为相象”,则可能幻影长矛不会被察觉了几个月,这个中介吸干数据吨。 客户端秘密都应该减轻这种攻击向量。 对于单用户客户机,折衷的时间,这是在比较效率极其低下来一个设备。
这也是让我疯狂,直到我看到做出的答案再明显的例子。
我必须登录到服务器,然后服务器将令牌授权访问返回到我的东西。
换句话说,服务器将现在的我,人类,一个登录屏幕,如果我还没有与服务器的有效登录会话。 这就是为什么解释总是这样说:“它是由服务器进行身份验证”。
当然,服务器不必要求我在我记录下来。这是现实吗? 将Dropbox的真正授权访问我的文件,未经登录? 当然不是。 大多数我读过粉饰这点好像也没关系,当它的实际,做事情的唯一的解释。