我有移动应用程序REST API调用,无需任何令牌或安全机制即可点击我的服务器。
我想保护我的API调用。我正在尝试了解什么是OAuth以及它如何保护我的移动应用REST API调用到我的服务器?
另外,我想详细了解OAuth中使用的以下字段。我将从哪里到达田野。
Consumer Key
Consumer Secret
Token
Token Secret
Timestamp
Nonce
答案 0 :(得分:20)
由于大多数提供商都使用OAuth 2.0,OAuth 1.0已被主要提供商弃用,我将解释OAuth2.0
OAuth是一种开放的授权标准,通常用作互联网用户使用其Microsoft,Google,Facebook,Twitter,One Network等帐户登录第三方网站的方式,而不会泄露其密码。
你可以实现自己的OAuth服务器,我在这里解释社交认证。所以OAuth后面的术语是指带有OAuth的社会认可。
通俗地说,OAuth允许用户使用帐户(Facebook,Google等)登录您的网络服务。
以下条款与OAuth无关,但与OAuth一起使用可使其更安全。
我将以Facebook登录为例解释图表。
背景。 在解释图表之前,请考虑您已完成以下操作。
secret_key
和2 {} app_id
Login with Facebook
的按钮。现在的图表。
To access the data: please login with facebook to access the page
login with Facbook
按钮,会打开一个新的弹出窗口OAuth dialog
。要求用户名和密码。 client_secret
access token
。access token
的用户信息。现在,这如何保护您的API?
将需要安全性的部分作为登录访问它们。如果发出请求的客户没有登录到您的api,请将他发送到图表的第2步。
那什么是nonce?时间戳吗
如果有人窃取访问令牌,只要访问令牌过期,他就可以访问 API服务器。因此,当用户请求页面时,服务器向他发回存储在服务器中的随机数。客户使用收到的现时签署请求并完成请求。由于nonce仅使用一次,因此服务器删除nonce。当攻击者抓取nonce并向服务器发出虚假请求时,服务器拒绝该请求,因为一次性号码已经无效,因此已经使用了。
TimeStamp用于标识创建令牌或随机数的时间,用于在有限的时间范围内(1-2秒)使令牌或随机数到期,这是请求完成所需的时间。