用户授权 OAuth 2.0
什么是OAuth
OAuth是一个关于授权(Authorization)的开放网络标准,目前的版本是2.0版。OAuth适用于各种各样的包括提供用户身份验证机制的应用程序,注意是Authorization(授权),而不是Authentication(认证)。用来做Authentication(认证)的标准叫做openid connect。OAuth的全称为“Open Authorization”,所以它是一个开放的协议,目前最新的版本为2.0。
什么时候需要认证?
对于目前大部分Web应用来说,用户认证基本上都由应用自身来完成。具体来说,Web应用利用自身存储的用户凭证(基本上是用户名/密码加密保存在cookie)与用户提供的凭证进行比较进而确认其真实身份。但是这种由Web应用全权负责的认证方式会带来如下两个问题:
1、对于用户来说,他们不得不针对不同的访问Web应用提供不同的用户凭证。如果这些凭证具有完全不同的密码,我们没有多少人能够记得住,所以对于大部分整天 畅游Internet的网友来说,我想他们在不同的网站注册的帐号都会采用相同的密码。密码的共享必然带来安全隐患,因为我们不能确定Web应用本身是否 值得信任。“信任危机”来源于两个方面:首先是对“人品”缺乏信任,我们不知道他们是否具有保护用户敏感信息的意愿;其次是对“能力”缺乏信任,即我们不 清楚他们是否有能力保护用户的敏感信息,对于知名网站泄露用户帐号信息的情况我们实在已经看的太多了。
2、对于Web应用的提供者来说,他们不得不对花费大量的时间、精力和资源来设计和开发自己的认证系统。在很多情况下,他们提供的是包含多个子系统的一整套解 决方案,如果每个子系统均需要独立的认证,那么投入的成本可想而知。所以他们希望能够提供一个单一的“认证中心”来对整个“生态系统”提供认证,如果这个 认证中心完全由第三方来免费提供,这无疑是最好的选择。
假设我有一件非常重要的文件存储与于瑞士银行的私有保险柜中,如果我需要委托某个人将他提取出来,除了将密码告诉他之外别无他法,但是OAuth的目的却 是定义一种协议帮助资源的拥有者在不提供自身凭证的前提下授权第三方应用以他的名义存取受保护的资源。
OAuth 2.0的几种模式
OAuth定义了四种模式,覆盖了所有的授权应用场景:
- 授权码模式(authorization code)
- 简化模式(implicit)
- 密码模式(resource owner password credentials)
- 客户端模式(client credentials)
用户授权 OAuth 2.0的更多相关文章
- c#实现microsoft账号登入授权(OAuth 2.0)并获取个人信息
本博主要介绍microsoft 账号授权(OAuth 2.0)登入并获取用户信息的过程,因为写过google账号授权登入的过程,所以这里就简单介绍一下,google授权登入参考地址:http://ww ...
- c#实现Google账号登入授权(OAuth 2.0)并获取个人信息
c#实现Google账号登入授权(OAuth 2.0)并获取个人信息 此博主要介绍通过google 账号(gmail)实现登入,授权方式OAuth2.0,下面我们开始介绍. 1.去google官网 ...
- 微信 网页授权获取用户基本信息(OAuth 2.0)
// 相关设置 $APPID = ""; $AppSecret = ""; $html = ""; // 拼接 URL // 跳转该连接 获 ...
- Spring Security OAuth 2.0
续·前一篇<OAuth 2.0> OAuth 2.0 Provider 实现 在OAuth 2.0中,provider角色事实上是把授权服务和资源服务分开,有时候它们也可能在同一个应用中, ...
- 【iOS】7.4 定位服务->2.1.1 定位 - 官方框架CoreLocation: 请求用户授权
本文并非最终版本,如果想要关注更新或更正的内容请关注文集,联系方式详见文末,如有疏忽和遗漏,欢迎指正. 本文相关目录: ================== 所属文集:[iOS]07 设备工具 === ...
- 【微信公众号开发】【8】网页授权获取用户基本信息(OAuth 2.0)
前言: 1,在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名. 请注意,这 ...
- [转]OAuth 2.0 - Authorization Code授权方式详解
本文转自:http://www.cnblogs.com/highend/archive/2012/07/06/oautn2_authorization_code.html I:OAuth 2.0 开发 ...
- OAuth2.0 微博登陆网站功能的实现(一)获取用户授权及令牌 Access Token
在登陆一些网站的时候,可以选择登陆方式为第三方登陆,例如微博登陆,以爱奇艺为例,进入首页,点击 ”登陆“,会弹出登录框: 除了本站登陆外,还可以选择其他第三方登陆,比如微博登陆.QQ 登陆.微信登陆等 ...
- 基于 IdentityServer3 实现 OAuth 2.0 授权服务数据持久化
最近花了一点时间,阅读了IdentityServer的源码,大致了解项目整体的抽象思维.面向对象的重要性; 生产环境如果要使用 IdentityServer3 ,主要涉及授权服务,资源服务的部署负载的 ...
随机推荐
- OpenCV Linux 安装 Make出错
执行完CMake之后再执行make时遇到以下错误 [ %] Generating precomp.hpp.gch/opencv_core_Release.gch In file included /b ...
- bind() live()和delegate 区别
Event bubbling (aka event propagation)冒泡 我们的页面可以理解为一棵DOM树,当我们在叶子结点上做什么事情的时候(如click一个a元素),如果我们不人为的设置s ...
- jQuery单选框radio绑定click事件
<div class="con_head"> <label><input type="radio" name="ask& ...
- C#:WebBrowser中伪造referer,为何对流量统计器无效?
使用webbrowser伪造referer的方法:webBrowser1.Navigate(url, "_self", null, "Referer:http://www ...
- ListView实现Item局部刷新
对于ListView数据的刷新大家都知道,改变Adapter的数据源,然后调用Adapter的notifyDateSetChanged()方法即可. 但是博主在做公司项目的时候,有个下载模块,因为可 ...
- Mac地址绑定的wifi
可以仿冒mac地址连接到wifi. 1.首先使用cdlinux扫描ssid,抓握手包--当捕获某个连接该wifi的client的时候,记下该client的mac地址. 2.用eswa解码抓包文件,获取 ...
- arcgis手动启动服务提示端口4000被使用
具体解决办法 参考 http://hi.baidu.com/xjx19860908/item/6b46376d92044694c4d249f6该博文. 手动启动,提示4000端口被占用,去查找4000 ...
- 一个3D的多人在线游戏, 服务端 + 客户端 【转】
最近学院组织了一个实训,要求是利用Socket通信和D3D的知识, 写一个多人在线的游戏, 服务端是在linux下, 客户是在Windows下: 写这个的目的是想让大家给我找错, 欢迎大家的意见.我的 ...
- GOOGLE不能访问的解决方法
1VPN gate 2自 由 门 3修改Windows\System32\drivers\etc hosts (复制https://github.com/txthinking/google-hosts ...
- ASP lable标签显示过长,自动换行。
<asp:Label ID="lab_BeforPostR" runat="server" CssClass="labSty" Wid ...