5 重定向到OP进行验证
请求参数
|
参数值
|
openid.ns
|
http://specs.openid.net/auth/2.0 OpenID版本号
|
openid.mode
|
checkid_setup 允许用户与OP之间交互(比如普通登录) checkid_immediate 不允许交互(比如:AJAX方式进行登录).
|
openid.claimed_id
|
(可选) 用户宣称的OpenID. 如果用户不采用代理方式,那么这与本地标识相同
|
openid.identity
|
(可选)本地标识
|
openid.assoc_handle
|
(可选) 建立关联阶段生成的通讯句柄
|
openid.return_to
|
(可选)认证完成之后重定向到RP端的URL
|
openid.realm
|
(可选) OpenID服务器请求用户信任的URL
|
注意:RP并没有直接发送HTTP请求到OP,而是重定向到OP认证页面。由于这样使得OP能够从用户浏览器中读取cookie而没有将任何认证细节泄露给RP,因此这个过程是安全的。
以下是登录plaxo网站时向yahoo!请求时提交的参数以及参数值:
openid.assoc_handle
|
B4H.wgHfnvp_7RgSLiLh0yCFh6EZtkJqvamH1O3_SH7aZod5POcxx.jF
XdEYYbvcOv.gfZG5YHgr4DSNCmFS25EvqmTH.YkZ7KlUakSifq2H6
zid99UffUVnJdXErUs-
|
openid.ax.mode
|
fetch_request
|
openid.ax.required
|
email
|
openid.ax.type.email
|
http://axschema.org/contact/email
|
openid.claimed_id
|
http://specs.openid.net/auth/2.0/identifier_select
|
openid.identity
|
http://specs.openid.net/auth/2.0/identifier_select
|
openid.mode
|
checkid_setup
|
openid.ns
|
http://specs.openid.net/auth/2.0
|
openid.ns.ax
|
http://openid.net/srv/ax/1.0
|
openid.ns.sreg
|
http://openid.net/extensions/sreg/1.1
|
openid.realm
|
http://*.plaxo.com
|
openid.return_to
|
http://www.plaxo.com/openid?actionType=complete&r=%2Fevents
|
openid.sreg.optional
|
nickname,email,fullname,dob,gender,postcode,country,language,timezone
|
openid.sreg.policy_url
|
http://www.plaxo.com/about/privacy
|
openid.sreg.required
|
Email
|
openid.trust_root
|
http://*.plaxo.com
|
6 回应认证请求
收到OpenID认证请求以后,OP需要决定允许还是拒绝用户的认证请求(当然如果用户提交的参数对了而且用户名密码也正确的话,估计也没有拒绝用户认证请求的,不过也有例外)。
注意:OP在接受用户认证请求时是有控制权的。他不但能异步的响应认证请求,而且能在响应认证请求之前先跟用户交互一阵子。最基本的表现在于:大多数的OP在相应请求之前都会询问用户是否拒绝RP的请求。
响应参数
|
参数值
|
openid.ns
|
http://specs.openid.net/auth/2.0 OpenID版本号
|
openid.mode
|
id_res 表示对认证请求的响应
|
openid.op_endpoint
|
OpenID的server URL
|
openid.claimed_id
|
(可选) OpenID
|
openid.identity
|
(可选) OpenID
|
openid.return_to
|
请求时发送的return_to参数
|
openid.response_nonce
|
一个长度小于255的字符串,对于每次响应是唯一的
|
openid.invalidate_handle
|
(可选)如果RP发送了一个非法的句柄,应该设置为这个参数值
|
openid.assoc_handle
|
用于数字签名的句柄
|
openid.signed
|
RP请求的,以逗号分隔的签名字段
|
openid.sig
|
Base64编码的签名
|
7 验证响应信息
RP接受OP的响应,并对一下信息进行验证
1 openid.return_to:是否匹配当前url,保证OP重定向到正确的URL。
2 The discovered information matches the information in the assertion.(不理解)
3 如果response_nonce具有相同的参数值,代表代表op受到了reply attack
4 签名是否有效,是否所有需要签名的参数都签名了,保证响应信息没有被篡改过
如果以上四条都满足的话,可以确定认证成功
分享到:
相关推荐
#### 一、OpenID协议概述 OpenID是一种开放式的身份验证标准,它允许用户使用单一的登录凭证来访问多个不同的网站或应用,而无需为每个站点分别设置用户名和密码。这不仅简化了用户的登录过程,也减轻了网站维护...
2. **Association管理**:OpenID协议中,客户端和提供者之间会建立一种安全关联(association),以确保消息的完整性和防止中间人攻击。JOpenID库实现了几种安全关联类型(如HMAC-SHA1、HMAC-SHA256等)的管理。 3....
在构建自己的OpenID提供者时,需要实现OpenID协议的相关规范,确保能够正确处理来自其他应用的认证请求。这包括设置服务器端的基础设施、处理身份验证请求和响应,以及可能的安全措施,如防止恶意请求。 总之,...
OpenID是一种去中心化的认证协议,使得用户可以更方便地访问Java Web应用程序中的资源。在本文中,我们将学习OpenID认证规范,并一步步地将其集成到一个Java应用程序中。我们不会手动实现OpenID认证规范,而是使用...
### OpenID 2.0:理解身份验证协议的精髓 #### 概述 OpenID Authentication 2.0,简称OpenID 2.0,是一种开放标准的协议,用于跨网站的身份验证,允许用户通过第三方身份提供商进行登录,而无需在每个网站上单独...
可以在此处找到概述如何使用库进行企业单点登录的演讲(由Google生产): 。 下载 适用于Android的在上 implementation ' net.openid:appauth:0.8.1 ' 要求 AppAuth支持Android API 16(Jellybea
标题:yadis-v1.0 描述:关于OpenID的协议指南,很好的OpenID资料。 根据提供的文件信息,我们深入探讨的是Yadis ...对于希望深入了解OpenID协议及其底层技术的开发者来说,这份文档提供了宝贵的指导和参考。
【Terraform AWS CloudFront OpenID Connect 概述】 Terraform 是一款强大的基础设施即代码(IAC)工具,允许用户以声明式的方式管理和配置云服务。在本案例中,"terraform-aws-cloudfront-openid" 提供了一个使用 ...
- **身份验证**:Python 库支持 OAuth2 和 OpenID 进行用户身份验证,符合 Matrix 的身份服务标准。 - **加密**:Python 提供了丰富的加密库,如 cryptography,用于实现 Matrix 中的端到端加密算法。 总结,...
OpenID Connect (OIDC) 是一种基于OAuth 2.0协议的身份验证层,它允许用户通过身份提供者(Identity Provider, IDP)安全地与应用进行交互。JsOidc 是一个JavaScript库,专门用于实现OIDC客户端功能,尤其适用于单页...
【OAuth2协议概述】 OAuth2是一种授权框架,广泛应用于开放API的权限管理,如社交平台的第三方应用登录。它允许用户授权第三方应用访问特定的资源,而无需共享用户名和密码。OAuth2的核心概念包括:资源所有者...
League/OAuth2-Server 是一个遵循 PSR-7 和 PSR-11 的全功能 OAuth 2.0 和 OpenID Connect 服务器实现。它提供了核心授权和身份验证功能,支持多种授权类型,可以轻松地与其他 PHP 库和框架集成。 **oauth2-server-...
2. **路由协议**:可能涉及到BGP(边界网关协议)的改进,用于大型网络间的路由选择和交换。 3. **电子邮件标准**:可能包含SMTP(简单邮件传输协议)的更新,改善邮件传递的效率和安全性,或者定义新的MIME类型以...
2. **HTTP协议** - HTTP是一种无状态协议,这意味着每次请求都是独立的,服务器不会记住之前的状态。为了在用户浏览网页时保持状态,通常使用cookie技术。 - HTTP定义了八种方法,包括HEAD、GET、POST、PUT、...
在技术概述部分,Spring Security的运行环境和核心组件被详细解释,包括SecurityContextHolder、SecurityContext和Authentication对象,UserDetailsService接口,GrantedAuthority概念,以及验证和访问控制的流程。...
#### 一、多账号体系概述 多账号体系是指在同一个应用或服务中支持多种登录方式的用户管理体系。它允许用户通过不同的第三方平台(如微博、微信、Facebook等)进行注册和登录,同时也支持用户在系统内部创建独立...
2. POP3(邮局协议)/IMAP4(因特网消息访问协议):接收邮件时,用户通常使用POP3或IMAP4协议。POP3下载邮件到本地设备,而IMAP4允许在服务器上管理和查看邮件,更适合多设备同步。 3. MIME(多用途互联网邮件扩展...
2. **实施严格的白名单策略**:对于使用OAuth或OpenID的服务,仅允许信任的应用和服务进行认证。 3. **加强认证流程的安全性**:通过多因素认证等手段增加认证过程的安全性。 4. **定期审查与更新**:定期检查并更新...