前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >iOS开发-OAuth2.0和SSO授权

iOS开发-OAuth2.0和SSO授权

作者头像
孙寅
发布于 2020-06-02 14:43:49
发布于 2020-06-02 14:43:49
96900
代码可运行
举报
文章被收录于专栏:宜达数字宜达数字
运行总次数:0
代码可运行

OAuth2.0:

一种安全的登陆协议,用户的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该访问令牌访问资源服务器的资源。由于用户的账号密码并不与本APP直接交互,而是与官方服务器交互,因而它是安全的。

例如:地下城就是你的游戏,第三方应用,QQ平台就是你的家。想让第三方应用去你的家里做一些事。你可以复制给他们一把钥匙(用户名和密码),我们要注意三个问题: - 别人拿了钥匙后可以去你家里任何地方 - 别人拿到你家的钥匙后也许会不小心丢到,甚至故意送到其他人手里。如何保证家的安全性? - 一段时间后,你不想别人拥有你的钥匙了,如何回收?

OAuth 是高级钥匙:
  • 可以配置不同权限的钥匙串。有些只能进客厅(读取你的QQ昵称)。有些钥匙可以进卧室(读取QQ头像)
  • 钥匙上带着指纹验证的(指纹 = appkey)。 收到钥匙的人只能自己用,不能转让
  • 远程废除之前发出的钥匙相对来说, OAuth比给出用户名密码安全

流程:   1、获取未授权的Request Token。     url:request token url。     param:appKey/appSecret,签名方法/签名(如HMAC-SHA1),timeStamp(时间戳:距1970/0/0/0/0/0的秒数),nonce(随机生成的string,防止重复请求)     response:Oauth_Token/Oauth_Secret   2、获取用户授权的Request Token。     url:user authorizition url。     param:Oauth_Token(上个步骤返回的令牌),callback_url(授权成功后返回的地址)     response:Oauth_Token(被用户授权或否决的令牌)   3、用已授权的Request Token换取AccessToken。     url:access token url。     param:appKey,Oauth_Token(上个步骤返回的令牌),签名,TimeStamp,nonce     response:Access_Token/Secret

二、SSO授权技术

全称:Single Sign On,用户只需登陆一次即可访问相互信任的子系统。用户访问系统1时,登陆成功后会返回一个ticket,当用户访问系统2时,会把ticket带上,待验证合法后即可访问系统2。听起来跟cookie有点像,没错,Web-SSO便有基于cookie的实现方案。   以新浪微博为例,很多手机APP在点击新浪授权时,会跳到新浪客户端的登陆页面,这里就用到SSO技术啦。在本APP授权新浪微博时,会先检测手机是否安装了新浪微博客户端。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[[UIApplication sharedApplication] openURL:xxx]

可以打开另一个APP 这里sinaweibosso://login为客户端的url并传递三个参数,AppKey,RedirectURI,ssoCallbackScheme。   ssoCallbackScheme是返回的App Url地址,即自己定义的sinaweibosso.appKey。   登陆成功后,客户端会直接把AccessToken返回给本App,就完成了一次授权。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SSO单点登录使用token机制来验证用户的安全性
// "心跳包" 用来检测用户是否在线!用来做长连接! http:短连接使用token 机制来验证用户安全性 // token 值: 登录令牌! 用来判断当前用户的登录状态!
Java帮帮
2018/03/16
4.9K0
SSO单点登录使用token机制来验证用户的安全性
OAuth2.0与OAuth1.0你了解了吗?
OAuth 协议简单的来说就是第三方应用在不知道我方用户账号密码的情况下,通过我们的授权,进行登录操作。它减少了用户注册的次数,方便用户快捷登录,提升用户体验度,更保障了用户的信息不被泄露。毕竟 qq/微博 大部分人都使用,而第三方应用却很少有人使用,用户既可以使用常用的登录方式登录,又不需要担心 qq/微博 泄露我们的信息给第三方应用。
小闫同学啊
2020/05/22
3.1K0
OAuth2.0与OAuth1.0你了解了吗?
OAuth2.0认证解析
OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版。
FB客服
2020/11/16
4.5K0
OAuth2.0认证解析
OAuth2.0认证流程是如何实现的?
大家也许都有过这样的体验,我们登录一些不是特别常用的软件或网站的时候可以使用QQ、微信或者微博等账号进行授权登陆。例如我们登陆豆瓣网的时候,如果不想单独注册豆瓣网账号的话,就可以选择用微博或者微信账号进行授权登录。这样的场景还有很多,例如登录微博、头条等网站,也都可以选择QQ或者微信登录的方式。
用户5927304
2019/07/30
2.3K0
OAuth2.0认证流程是如何实现的?
深入探讨安全验证:OAuth2.0、Cookie与Session、JWT令牌、SSO与开放授权平台设计
认证和授权是安全验证中的两个重要概念。认证是确认身份的过程,用于建立双方之间的信任关系。只有在认证成功的情况下,双方才可以进行后续的授权操作。授权则是在认证的基础上,确定用户或系统对资源的访问权限。
努力的小雨
2023/11/11
1.7K0
[译] 深入 OAuth2.0 和 JWT
从基于计算机的应用出现伊始,几乎每个开发者在其职业生涯内都会面对的一个最常见也是最复杂的问题,就是安全性(security)。这类问题意味着要考虑理解由谁提供什么数据/信息,此外还有关乎时间、校验、再校验等诸如此类的很多其他方面的事情。
江米小枣
2020/06/15
3.2K0
OAuth2.0 认证
密码模式(Resource owner password credentials)流程
谢公子
2022/01/20
1.5K0
OAuth2.0 认证
深入解锁 SSO 和 OAuth:单点登录与授权的技术密码
无论是工作中的企业级应用,还是生活中的各类社交、娱乐平台,用户体验和安全性都是至关重要的考量因素。而 SSO(Single Sign-On,单点登录)与 OAuth(Open Authorization,开放授权)就是在这个领域中发挥着关键作用的两项重要技术。
MaxKey单点登录开源官方
2024/09/12
5090
深入解锁 SSO 和 OAuth:单点登录与授权的技术密码
SSO 单点登录和 OAuth2.0 有何区别?
在微服务时代,用户需要在多个应用程序和服务之间进行无缝切换,同时保持其登录状态。我们可以通过单点登录(SSO)或者 OAuth2.0 等身份验证和授权协议来实现这一目标。
江南一点雨
2024/03/06
6250
SSO 单点登录和 OAuth2.0 有何区别?
到底什么是认证?什么是授权?
认证 (Authentication) 是根据凭据验明访问者身份的流程。即验证“你是你所说的那个人”的过程。
程序视点
2025/01/17
1300
到底什么是认证?什么是授权?
SSO 单点登录和 OAuth2.0 的区别和理解
一、概述 SSO是Single Sign On的缩写,OAuth是Open Authority的缩写,这两者都是使用令牌的方式来代替用户密码访问应用。流程上来说他们非常相似,但概念上又十分不同。SSO大家应该比较熟悉,它将登录认证和业务系统分离,使用独立的登录中心,实现了在登录中心登录后,所有相关的业务系统都能免登录访问资源。 OAuth2.0原理可能比较陌生,但平时用的却很多,比如访问某网站想留言又不想注册时使用了微信授权。以上两者,你在业务系统中都没有账号和密码,账号密码是存放在登录中心或微信服务器中的
程序猿DD
2023/05/04
2.1K0
SSO 单点登录和 OAuth2.0 的区别和理解
整合spring cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)
之前写了很多关于spring cloud的文章,今天我们对OAuth2.0的整合方式做一下笔记,首先我从网上找了一些关于OAuth2.0的一些基础知识点,帮助大家回顾一下知识点:
庞小明
2018/07/30
1.9K1
Springboot 集成OAuth2.0密码模式简单配置
(1)Third-party application:第三方应用程序,简称"客户端"(client);
黑洞代码
2021/01/14
3.6K0
Springboot 集成OAuth2.0密码模式简单配置
Shiro框架学习,Shiro与OAuth2集成
目前很多开放平台如新浪微博开放平台都在使用提供开放API接口供开发者使用,随之带来了第三方应用要到开放平台进行授权的问题,OAuth就是干这个的,OAuth2是OAuth协议的下一个版本,相比OAuth1,OAuth2整个授权流程更简单安全了,但不兼容OAuth1,具体可以到OAuth2官网http://oauth.net/2/查看,OAuth2协议规范可以参考http://tools.ietf.org/html/rfc6749。目前有好多参考实现供选择,可以到其官网查看下载。
用户1289394
2021/04/20
4.9K0
Shiro框架学习,Shiro与OAuth2集成
[PHP] Oauth授权和本地加密
1.Oauth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方
唯一Chat
2019/09/10
6110
oauth2.0的授权流程详解
1、 在客户端web项目中构造一个oauth的客户端请求对象(OAuthClientRequest),在此对象中携带客户端信息(clientId、accessTokenUrl、response_type、redirectUrl),将此信息放入http请求中,重定向到服务端。此步骤对应上图1
Dream城堡
2018/09/10
3.7K0
oauth2.0的授权流程详解
[认证授权] 1.OAuth2授权
1 OAuth2解决什么问题的? 举个栗子先。小明在QQ空间积攒了多年的照片,想挑选一些照片来打印出来。然后小明在找到一家提供在线打印并且包邮的网站(我们叫它PP吧(Print Photo缩写 ?))
blackheart
2018/01/19
1.8K0
[认证授权] 1.OAuth2授权
OAuth 2.0 授权认证详解
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/06/20
1.9K0
OAuth 2.0 授权认证详解
1.第三方登陆
登录 javaweb中如何去维持登录状态 1.登录后 信息放入 session中 2.页面内验证session中是否有登录信息 3.如果有,不需要再次登录 4.如果没有,跳转登录页面 5.如果登录后点击注销,删除session中登录信息,并清除页面缓存(必要的) image.png javaweb中哪些情况我们的session会过期 1.过期-->很长时间没有去访问网站 2.主动关闭-->用处注销 3.切换浏览器 手机端如何维持登录状态 登录成功之后,在成功的结果里面会附加一个sessionKey/toke
六月的雨
2018/05/14
1.7K0
理解OAuth2.0协议-基础篇
OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。
tonglei0429
2019/07/22
1.2K0
相关推荐
SSO单点登录使用token机制来验证用户的安全性
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文