OAuth简介

OAuth是什么

OAuth协议致力于使网站和应用程序(统称为消费方)能够在无须用户透露其认证证书的情况下,通过API访问某个web服务(统称为服务提供方)的受保护资源。更一般地说,OAuth为API认证提供了一个可自由实现且通用的方法。 一个典型的例子是某打印服务提供商printer.example.com(消费方),希望在无须用户提供其照片存储站点密码的情况下,访问用户储存在服务提供方上的个人照片。

 

一、什么是OAuth协议

OAuth(开放授权)是一个开放标准。

允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息。

而这种授权无需将用户提供用户名和密码提供给该第三方网站。

OAuth允许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定的时间内访问特定的资源。

 

二、OAuth的原理和授权流程

OAuth的认证和授权的过程中涉及的三方包括:

服务商:用户使用服务的提供方,一般用来存消息、储照片、视频、联系人、文件等(比如Twitter、Sina微波等)。

用  户:服务商的用户

第三方:通常是网站,该网站想要访问用户存储在服务商那里的信息。

比如某个提供照片打印服务的网站,用户想在那里打印自己存在服务商那里的网络相册。

在认证过程之前,第三方需要先向服务商申请第三方服务的唯一标识。

OAuth认证和授权的过程如下:

1、用户访问第三方网站网站,想对用户存放在服务商的某些资源进行操作。

2、第三方网站向服务商请求一个临时令牌。

3、服务商验证第三方网站的身份后,授予一个临时令牌。

4、第三方网站获得临时令牌后,将用户导向至服务商的授权页面请求用户授权,然后这个过程中将临时令牌和第三方网站的返回地址发送给服务商。

5、用户在服务商的授权页面上输入自己的用户名和密码,授权第三方网站访问所相应的资源。

6、授权成功后,服务商将用户导向第三方网站的返回地址。

7、第三方网站根据临时令牌从服务商那里获取访问令牌。

8、服务商根据令牌和用户的授权情况授予第三方网站访问令牌。

9、第三方网站使用获取到的访问令牌访问存放在服务商的对应的用户资源。

 

三、目前支持OAuth的网站有哪些?

t.sina.com.cn
t.qq.com
t.sohu.com
t.163.com
www.douban.com
www.twitter.com
www.facebook.com
Google Buzz

现在基本都支持OAuth2.0版本了。

 

四、举例说明认证的操作过程

首先来看看我们在第三方使用oauth流程如下:

第一步:用户登录第三方网站,使用qq登录。

第二步:点击登录后,会跳到qq平台提示输入用户名和密码。

第三步:如果用户名和密码正确,会提示是否接受授权,如果授权成功,第三方网站就能访问你的资源了,qq头像、用户名等

认证和授权过程(包括三方)

1、服务提供方,用户使用服务提供方来存储受保护的资源,如照片,视频,联系人列表。

2、用户,存放在服务提供方的受保护的资源的拥有者。

3、客户端,要访问服务提供方资源的第三方应用,通常是网站。在认证过程之前,客户端要向服务提供者申请客户端标识。

用户访问客户端的网站,想操作用户存放在服务提供方的资源。

 

客户端向服务提供方请求一个临时令牌。

服务提供方验证客户端的身份后,授予一个临时令牌。

客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权。在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。

用户在服务提供方的网页上输入用户名和密码,然后授权该客户端访问所请求的资源。

授权成功后,服务提供方引导用户返回客户端的网页。

客户端根据临时令牌从服务提供方那里获取访问令牌。

服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。

客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。

参见:http://wiki.open.qq.com/wiki/website/OAuth2.0%E7%AE%80%E4%BB%8B

参见: http://www.tuicool.com/articles/qqeuE3 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security 是一个强大的安全框架,可以用于保护 Spring 应用程序中的资源。OAuth 是一种授权机制,可以用于保护 Web 应用程序中的资源。本文将介绍 Spring Security 和 OAuth 的相关知识和技术,以及如何在应用程序中使用它们。 一、Spring Security 1.1 Spring Security 简介 Spring Security 是一个强大的安全框架,可以用于保护 Spring 应用程序中的资源。Spring Security 提供了多种安全特性,如认证、授权、加密等。通过使用 Spring Security,我们可以轻松地保护应用程序中的资源,如 URL、方法、服务等。 1.2 Spring Security 特性 Spring Security 提供了多种安全特性,如认证、授权、加密等。以下是 Spring Security 的一些主要特性。 (1)认证:通过认证机制,可以验证用户是否具有访问资源的权限。Spring Security 提供了多种认证方式,如表单认证、HTTP 基本认证、LDAP 认证等。 (2)授权:通过授权机制,可以限制用户对资源的访问权限。Spring Security 提供了多种授权方式,如基于角色的授权、基于权限的授权等。 (3)加密:通过加密机制,可以保护用户的敏感信息。Spring Security 提供了多种加密方式,如 MD5、SHA、BCrypt 等。 (4)会话管理:通过会话管理机制,可以管理用户的会话信息,如会话超时时间、会话 ID 等。 (5)注解支持:通过注解机制,可以在代码中使用注解来控制资源的访问权限。 1.3 Spring Security 实现原理 Spring Security 的实现原理主要是通过过滤器链来实现的。当请求到达应用程序时,Spring Security 会拦截请求,并根据配置的过滤器链来判断请求是否合法。如果请求合法,则允许请求通过,否则拒绝请求。 二、OAuth 2.1 OAuth 简介 OAuth 是一种授权机制,可以用于保护 Web 应用程序中的资源。OAuth 主要用于授权第三方应用程序访问用户的资源。例如,当我们使用第三方登录时,需要使用 OAuth 机制来保护用户的隐私信息。 2.2 OAuth 2.0 OAuth 2.0 是 OAuth 的一个升级版本,主要用于 Web 应用程序中的资源保护。OAuth 2.0 相比于 OAuth 1.0,有以下几个改进。 (1)简化了流程:OAuth 2.0 简化了授权流程,使得开发者可以更容易地实现 OAuth 机制。 (2)支持多种认证方式:OAuth 2.0 支持多种认证方式,如授权码模式、密码模式、客户端模式等。 (3)支持多种授权方式:OAuth 2.0 支持多种授权方式,如基于角色的授权、基于权限的授权等。 2.3 OAuth 2.0 实现原理 OAuth 2.0 的实现原理主要是通过授权服务器和资源服务器来实现的。当第三方应用程序请求访问用户的资源时,需要经过授权服务器的认证和授权,然后才能访问用户的资源。授权服务器的认证和授权主要是通过 OAuth 2.0 的认证和授权流程来实现的。 三、Spring Security 和 OAuth 的整合 3.1 Spring Security OAuth Spring Security OAuth 是 Spring Security 的一个扩展,可以用于实现 OAuth 2.0 授权机制。Spring Security OAuth 提供了多种认证方式和授权方式,可以轻松地实现 OAuth 2.0 授权机制。 3.2 Spring Security 和 OAuth 的整合 Spring Security 和 OAuth 的整合可以使用 Spring Security OAuth 来实现。以下是 Spring Security 和 OAuth 的整合步骤。 (1)引入 Spring Security OAuth 依赖。 (2)配置 OAuth 2.0 客户端信息。 (3)配置 Spring Security OAuth 2.0 认证服务器。 (4)配置 Spring Security OAuth 2.0 资源服务器。 (5)在应用程序中使用 OAuth 2.0 认证机制。 四、案例及开源链接 以下是一个基于 Spring Security 和 OAuth 的案例及其开源链接。 4.1 Spring Security 和 OAuth2.0 实现基于 Github 的第三方登录 该案例基于 Spring Security 和 OAuth2.0 实现了基于 Github 的第三方登录。用户可以使用 Github 账号登录应用程序,而无需再次进行注册。开源链接:https://github.com/spring-guides/tut-spring-security-and-angular-js/tree/master/oauth2-github 五、总结 本文介绍了 Spring Security 和 OAuth 的相关知识和技术,以及如何在应用程序中使用它们。通过使用 Spring Security 和 OAuth,我们可以轻松地保护应用程序中的资源,保护用户的隐私信息。在实际开发中,我们应该根据具体情况选择合适的认证方式和授权方式,以保证应用程序的安全性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值