OpenID规范文档中的介绍:
  OpenID 认证提供了一种方式,可以让用户证明自己对某个 Identifier 拥有控制权。 它不需要 Relying Party 去访问用户的凭据比如密码或者其他的敏感信息比如电子邮件地址等。 
  OpenID 是分散的。不需要一个中央官方机构批准或注册 Relying Parties 或 OpenID Providers。 最终用户可以自由地选择使用哪个 OpenID Provider,并能在他们更换 OpenID Providers 时维护自己的 Identifier。 
  OpenID 认证仅仅使用标准的 HTTP(S) 请求和响应, 因此它不需要 User-Agent 具有特殊能力或者其他客户端软件。 OpenID 不和 cookies 的使用或者 Relying Party 的其他任何具体机制或 OpenID Provider 的会话管理挂钩。 虽然使用该协议没有必要扩展 User-Agents,但可以简化用户操作。 
  用户信息或者其他信息的交换不包括在该规范中,在此协议上附加协议形成一个框架可解决此问题。 OpenID 认证的目的是提供一个基础服务,使它能在自由和分散的方式下携带用户数字标识。

介绍中涉及到了很多名词,比如Relying Parties,这些都代表什么意思呢,下面就介绍下OpenID中最重要的三种角色:
OP【OpenID Provider】: OpenID提供者,提供对用户鉴权功能
RP【Relying Party】: 依赖方,直接服务提供者,需要信任OP鉴权的结果
UA【User Agent】:终端用户,想使用RP服务的用户
三者间的关系就是:让UA在OP登陆,并使用RP提供的服务;
UA和OP/RP交互的时序图如下:

OP和RP在初次交互的过程中,需要建立一种关联关系Association,这就涉及到安全性的问题,OpenID规范中指出,在Association会话建立过程中,采用了 Diffie-Hellman密钥一致协议 来保证会话的安全性,主要有"no-encryption"、"DH-SHA1"和"DH-SHA256"三种类型,注意第一种类型只能在https传输协议下才能选择;
而在双方互相信任之后,则采用更为简单和快速的HMAC-SHA算法来进行签名,有"HMAC-SHA1"和"HMAC-SHA256"两种选择;需要注意的是在选择两类算法时两者的长度需要保持一致;

PS:OpenID认证2.0官方文档地址:http://www.openid.net.cn/specs/openid-authentication-2_0-zh_CN.html

OpenID4JAVA:http://code.google.com/p/openid4java/

权限认证之OpenID-OP/RP的更多相关文章

  1. Ocelot网关+IdentityServer4实现API权限认证

    Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由.请求聚合.服务发现.认证.鉴权.限流熔断.并内置了负载均衡器与Service Fabric.Butterfly ...

  2. 3.jenkins 权限认证与密码设置

    1.前言 在用Jenkins过程中忘记管理员密码和开启权限认证后管理员帐号没有任何权限是经常遇到的情况,最近有好多群友被这个问题困扰.但Jenkins没有提供密码找回的功能,经过一翻探索找到了一种变相 ...

  3. 【Java EE 学习 20】【使用过滤器实现登陆验证、权限认证】【观察者模式和监听器(使用监听器实现统计在线IP、登录IP 、踢人功能)】

    一.使用过滤器实现登录验证.权限认证 1.创建5张表 /*使用过滤器实现权限过滤功能*/ /**创建数据库*/ DROP DATABASE day20; CREATE DATABASE day20; ...

  4. 比RBAC更好的权限认证方式(Auth类认证)

    Auth 类已经在ThinkPHP代码仓库中存在很久了,但是因为一直没有出过它的教程, 很少人知道它, 它其实比RBAC更方便 . RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了, ...

  5. mongodb3 权限认证问题总结

    mongodb3 权限认证问题总结 标签(空格分隔): mongodb 权限 数据库 认证 ubuntu用户安装最新版本mongodb 添加key sudo apt-key adv --keyserv ...

  6. Codeigniter-实现权限认证

    两种方法 钩子函数 集成核心Controller 方法一,钩子函数: 一直没找到CI的权限认证扩展,以前好像找到过一个老外的扩展,不过不怎么好用,现在记不清了,后来仿着jsp firter的方式用CI ...

  7. asp.net权限认证篇外:集成域账号登录

    在之前的我们已经讲过asp.net权限认证:Windows认证,现在我们来讲讲域账号登录, 这不是同一件事哦,windows认证更多的是对资源访问的一种权限管控,而域账号登录更多的是针对用户登录的认证 ...

  8. asp.net权限认证:Windows认证

    asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...

  9. asp.net权限认证:Forms认证

    asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证 ...

随机推荐

  1. XE5开发Android程序调用电话相关功能(短信息和电话) [转]

    其实都可以通过intent和URI调用系统功能.Windows程序员可以理解成是ShellExecute.这个是万金油.可以有调用各种功能.后面会介绍. 1.短信息.很简单 方法a.不使用Intent ...

  2. jsp页面间对象传递方法

    严格的来说不能叫做JSP页面间的对象传递,实际应该是页面间对象共享的方法: 1. 通过servletcontext,也就是application对象了,但这种情况要求在同一个web应用下,      ...

  3. [蓝桥杯]ALGO-91.算法训练_Anagrams问题

    问题描述 Anagrams指的是具有如下特性的两个单词:在这两个单词当中,每一个英文字母(不区分大小写)所出现的次数都是相同的.例如,“Unclear”和“Nuclear”.“Rimon”和“MinO ...

  4. 机器学习-Python中训练模型的保存和再使用

    模型保存 BP:model.save(save_dir) SVM: from sklearn.externals import joblib joblib.dump(clf, save_dir) 模型 ...

  5. FB的破解与安装

    1使用破解序列号安装 先找到host文件,一般可能是隐藏的windows/system32/drivers/etc在下面加入127.0.0.1 activate.adobe.com127.0.0.1 ...

  6. webpack学习总结(一)

    * webpack安装 1. 安装最新node,node自带npm包管理器: 2. 全局模式安装webpack(只有将webpack在全局模式下安装才能在命令行直接通过webpack执行命令) $np ...

  7. P1015回文数

    传送 回文数的判断有个神奇的公式: g[i]==g[leng+-i] 其中leng为字符串长度,看每个g[i]是否都满足它,若满足,就是回文数 ps:洛谷的impossible有毒,必须得复制题干中的 ...

  8. spring4.0之五:@Conditional在满足特定条件下,才会实例化对象

    这篇文章介绍Spring 4的@Conditional注解. 一.在Spring的早期版本你可以通过以下方法来处理条件问题 3.1之前的版本,使用Spring Expression Language( ...

  9. BOF、EOF 属性

    BOF.EOF 属性 BOF 指示当前记录位置位于 Recordset 对象的第一个记录之前. EOF 指示当前记录位置位于 Recordset 对象的最后一个记录之后. 返回值 BOF 和 EOF  ...

  10. rnn实现三位数加法的训练

    #!/usr/bin/env python # coding=utf-8 from keras.models import Sequential from keras.layers import Ac ...