11、OAuth和OpenID服务

1、OAuth

1、1 简介

OAuth是发布受保护数据并与之交互的简单方法。对于人们来说,这也是一种更安全的访问方式。例如,它可以用来访问你的用户在Twitter上的数据。Play仅提供对OAuth 1.0的支持。

1、2 基本工作原理

在build.sbt中添加配置:

libraryDependencies ++= Seq(

  javaWs

)

将应用程序注册到服务提供商,回调的URL必须正确,如果不匹配,服务提供商会拒绝调用。在本地工作时,可以使用/etc/hosts在本地计算机上伪造域。服务提供商将为您提供:应用程序标识、秘密密钥、请求令牌URL、访问令牌URL、授权URL。

从服务器获取请求令牌;将用户重定向到服务提供商,在那里将授予您使用它应用程序中数据的权限;服务提供商将重新定向用户,为您提供一个/verifier/;使用该验证器,将/request-token/交换为/access-token/。现在拥有/access token/的用户可以访问任何访问受保护的数据。

1、3 实例

实例资源文件Twitter .java

注意:OAuth不提供任何针对MITM攻击的保护。

2、OpenID服务

2、1 简介

OpenID是一种协议,用户可以使用一个帐户访问多个服务。作为一个Web开发人员,您可以使用OpenID为用户提供一种登录的方式。

2、2 OpenID服务

用户提供一个他的OpenID(一个URL)到应用服务器;服务器检查URL后面的内容,以生成需要重定向用户的URL;用户确认了其OpenID提供者的授权,并被重定向回应用服务器;应用服务器接收来自该重定向的信息,并向检查信息是否正确。

2、3 使用OpenID

首先需要在build.sbt中添加依赖:

libraryDependencies ++= Seq(

  openId

)

使用OpenID时需要依赖OpenIdClient 类

两个重要的api:

OpenIdClient.redirectUrl:计算应该重定向用户的URL。它涉及异步获取用户的OpenID页面,这就是它返回completionStage<string>的原因。如果openID无效,则返回的completionStage将完成,但出现异常。

openidclient.verifiedid检查当前建立用户信息的请求,包括其已验证的openid。它将异步调用OpenID服务器以检查信息的真实性,并返回用户信息的承诺。如果信息不正确或服务器检查为假(例如,如果重定向URL是伪造的),则返回的CompletionStage将完成,但会出现异常。

使用示例在资源文件WS.java文件中

2、4 扩展属性

可以从OpenID服务器请求可选属性和/或必需属性。请求所需的属性意味着如果用户不提供这些属性,则无法登录到您的服务。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值