San*_*khe 9 authentication api rest oauth oauth-2.0
我有移动应用程序REST API调用,无需任何令牌或安全机制即可访问我的服务器.
我想保护我的API调用.我正在尝试了解什么是OAuth以及它如何保护我的移动应用REST API调用到我的服务器?
另外,我想详细了解OAuth中使用的以下字段.我将从哪里到达田野.
Consumer Key
Consumer Secret
Token
Token Secret
Timestamp
Nonce
Run Code Online (Sandbox Code Playgroud)
All*_*ітy 23
由于大多数提供商都使用OAuth 2.0,OAuth 1.0已被主要提供商弃用,我将解释OAuth2.0
OAuth是一种开放的授权标准,通常用作互联网用户使用其Microsoft,Google,Facebook,Twitter,One Network等帐户登录第三方网站的方式,而不会泄露其密码.
你可以实现自己的OAuth服务器,我在这里解释社交认证.所以OAuth后面的术语是指带有OAuth的社交认证.
通俗地说,OAuth允许用户使用帐户(Facebook,Google等)登录您的Web服务.
以下条款与OAuth无关,但与OAuth一起使用可使其更安全.
我将用Facebook登录作为示例解释图表.
背景.在解释图表之前,请考虑您已完成以下操作.
secret_key
和2)anapp_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
用户的API服务器.access token
.现在,这如何保护您的api?
将需要安全性的部分作为登录访问它们.如果发出请求的客户端未登录到您的api,请将其发送到图表的第2步.
什么是nonce?时间戳?
如果有人窃取访问令牌,只要访问令牌过期,他就可以访问API服务器.因此,当用户请求页面时,服务器向他发回存储在服务器中的随机数.客户使用收到的现时签署请求并完成请求.由于nonce仅使用一次,因此服务器删除nonce.当攻击者抓取现时并向服务器发出虚假请求时,服务器拒绝该请求,因为一次性号码已经无效.
TimeStamp用于标识创建令牌或随机数的时间,该时间用于在有限的时间范围内(1-2秒)使令牌或随机数到期,这是请求完成所需的时间.