教程分类
教程浏览排行

4种认证(authentication)或授权(authorization)方式

authentication 认证访问者是谁 authorization 访问权限authentication 一般包含两个步骤,第一步,用户需要安装服务提供的授权证书,或者用户需要使用api服务中已经存储的某个账户,也可以创建一个;第二步,每次发送请求到api服务时需要带上证书,因为restful api 是不会记录客户端与服务端的会话,无状态限制。有些认证技术还涉注册,客户端需要安装证书,并且按需要安装用户个人的证书,客户端需要将客户端的证书和用户证书一起携带发送请求。basic authentication http basic authentication is described in rfc 2617. it’s a simple username/password scheme. 将用户名与密码进行base64转码,但这种转码是可逆的。某些爬虫工具可能会获取这些请求信息,直接获取用户的账号和密码,如果采用https方式发送请求,每次请求和响应会被ssl加密,爬虫无法获取这些信息。另一个问题,由于api通常不能信任用户使用的客户端,如果用户在多个设备(平板、电脑、手机)中登录了这个api服务,其中一个设备出现安全问题,需要修改密码,那么其他设备也需要重新登录才行。为了解决第二个问题,需要对每个设备给予不同的证书。oauth oauth 是一种授权框架,能够让应用通过http 服务获取有限的访问,访问用户账号信息,例如facebook, github, digitalocean都采用该技术。它可以委托认证服务授权第三方应用访问自己的账号信息。oauth2 相比oauth 1,可以在pc端、移动端设备上使用。oauth 定义了四种角色: 1. 资源所属者,user, 拥有该资源的人,拥有application所访问资源的权限。 2. 客户端, application, 需要访问用户账号信息的应用 3. 资源服务器, api 4. 授权服务器, apioauth 抽象版流程图 在应用(application/client)使用oauth前需要在service api 注册该应用。需要在service中提交应用的信息:名称、网站、授权后的跳转url。当应用注册后,service会发布“client credentials”客户端证书,包括client identifier 和 client secret. client id 是公开的字符串,提供serviceapi标识该应用,并且用来构建呈现给用户的授权urls。 client secret用来认证application向serviceapi的发起访问用户账号信息的请求,需要确保application与api之间的隐私。authorization grant (权限授予方式) 在上图的第一步中有权限授予操作。oauth2 提供四种授予权限的方式,根据不用场景使用: 1. authorization code: 在服务端应用采用 2. implicit: 移动端app,web应用 3. resource owner password credentials: 在可信任的应用中使用 4. client credential:应用访问api采用的authorization code flow 第一步,用户 访问授权请求的链接,例如 链接包含五个信息:api 授权点 client_id: client_id, redirect_uri=callback_url response_type=code, 指定应用的授权的方式,采用authorization code grant 方式 scope=read. 指定访问的等级 第二步,授权应用后,会获取authorization code 第三步,根据code换取 token
来源:本站整理 发布时间:2019/1/31 16:30:13 浏览次数
上一篇教程:用好powerpoint2007的重用幻灯片
下一篇教程:flash教程视频
教程评论


评论人: 验证码:
内 容:
相关教程