`
fly_hyp
  • 浏览: 305647 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Open Id and Open Auth

    博客分类:
  • Java
阅读更多

Open Id and Open Auth


1.authentication(身份验证) and authorization(授权)


Open Id

OpenID is a decentralized authentication protocol that makes it easy for people to sign up and access web accounts.


OpenId是一个登录协议


Oauth

An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications.


Oauth是一个授权协议


似乎他们是不同领域的两种协议。

仔细想想下面的几个问题,就可以就知道他们的本质了。

a.登录了以后做什么?

b.不登录如何授权?


2.各个应用分析


登录Google Facebook都提供OpenId和Oauth服务,可以使用他们的帐号登录其他允许的网站。

Linkedin 提供Oauth服务, 可以使用他的帐号登录其他允许的网站。

人人网也提供Oauth服务。雅虎、淘宝、QQ等都提供类似的Oauth服务。

 

OpenId  依赖方(Relying Party, RP) 身份提供者(Identity Provider, IdP)
Oauth  Consumer  服务提供商


有了这两种技术促进了各网站间融合。


典型应用:

一般依赖方(Consumer)都是影响力小一些的网站,提供商都是大网站。大网站希望小网站来丰富他的功能,小网站希望大网站给他带来用户等资源。


大网站(服务提供商)可以根据商业策略对小网站的相关功能做一些限制,有的限制大,有的限制小。

像淘宝和QQ这样的强势中国网站,对使用Oauth的数据有很多限制和审核流程。

美国的大网站要开放的多。无论怎样还是为背后的商业目的说驱动。


3.技术分析

OpenId

http://openid.net/get-an-openid/what-is-openid/

http://openid.net/get-an-openid/start-using-your-openid/ 

http://www.iteye.com/news/4003 

流程:

1. 获取用户提供的标识符:RP 获得用户的 OpenID。

2. 发现:RP 规范化用户提供的标识符,以决定联系哪个 OP 进行身份验证,如何与其联系。

3. 关联:RP 和 OP 建立一个安全通信渠道。

4. 身份验证请求:RP 要求 OP 对用户进行身份验证。

5. 验证:RP 向 OP 请求用户名验证,并确保通信没有受到干扰。

6. 转到应用程序:身份验证之后,RP 为用户指向其先前请求的资源。

Oauth

http://oauth.net/ 

http://developers.facebook.com/docs/authentication/ 

API Key:ggZ1

Secret Key:iImb

1. 用户访问RP ,

2. RP 要求 OP 对用户进行身份验证

3. 跳回RP,RP得到Access_token


基本流程就是如我以上所说的。Oauth需要在服务提供商网站上申请开发者帐号。


4.整合项目角度分析

openid要标准一些,实现了依赖方网站以后,各个服务提供商的openId帐号都可以登录。

Oauth各个网站虽然基本功能差不多,各个提供商都需要申请帐号,独立整合,而且提供的数据还不一样。

所以需要按照产品的设计一个一个的整合和维护,将会比较费时费力。


5.实现的类库


我试过下面类库,都非常简单。

OpenId:

http://code.google.com/p/joid/

Oauth:

使用服务提供商给的Javascript类库或REST类库

1
2
分享到:
评论

相关推荐

    支付宝 网页授权 获取用户信息Demo(C#)

    C#获取支付宝用户信息,... var url = string.Format("https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id={0}&scope=auth_user&redirect_uri={1}", appid, ENCODED_URL); Response.Redirect(url); }

    openmeetings十万个如何

    ### OpenMeetings自定义配置与优化实践 #### 一、绕过登录机制 在某些应用场景下,例如测试或演示环境中,可能需要绕过OpenMeetings的登录步骤以便快速访问会议功能。实现这一目的的方法是在`base\auth\...

    OPEN ID PHP代碼

    - `Auth_OpenID`类库:这是实现OpenID的基础,包含了各种处理OpenID请求和响应的类。 - `Consumer`类:消费者(RP)的核心,用于初始化OpenID进程,处理重定向和验证结果。 - `Server`类(可选):如果你的网站也想...

    OpenHIS系统数据字典1

    `id`是病历ID,`hospital_id`是医院ID,`doctor_id`是医生ID,`patient_id`是患者ID,`department_id`是科室ID,`type_id`区分接诊类型(0为初诊,1为复诊,2为急诊),`is_contagious`表示是否传染(0否,1是),`...

    DotNetOpenAuth4.2.2源代码

    4. **Configuration**: 用于配置OAuth和OpenID设置,如客户端ID、秘密、回调URL等。 5. **Examples**: 示例项目演示如何在实际应用中使用DotNetOpenAuth。 深入研究DotNetOpenAuth源代码,开发者可以了解如何处理...

    Open Stack API参考大全

    X-Trans-Id: tx274a77a8975c4a66aeb24-0052d95365 Date: Fri, 17 Jan 2014 15:59:33 GMT [ { "count": 0, "bytes": 0, "name": "janeausten" }, { "count": 1, "bytes": 14, "name": "marktwain" }] 总结 ...

    支付宝授权sdk

    商户授权成功后,pc或者钱包客户端会跳转至开发者定义的回调页面(即redirect_uri参数对应的url),在回调页面请求中会带上当次授权的授权码app_auth_code和开发者的app_id,示例如下:

    nuxt-auth:Nuxt.js的Storyblok身份验证模块

    @ storyblok / nuxt-auth 用于Nuxt.js的Storyblok身份验证模块 ... id : 'Client ID from Storyblok App' , secret : 'Secret from Storyblok App' , redirect_uri : 'REDIRECT_URI' // Equal to callbakc URL of O

    OpenAPI-[removed]KKBOX JavaScript的Open API SDK

    // Create an auth object with client id and secretconst auth = new Auth ( client_id , client_secret ) ;// Fetch your access tokenauth . clientCredentialsFlow . fetchAccessToken ( ) . then ( response =...

    googleauth

    OAuth 2.0和Open ID Connect 目标: 了解什么是OAuth v2.0和Open ID Connect,以及它们之间的关系 了解OAuth和Open ID Connect解决的问题 了解OAuth适用于不同类型的应用程序和用例 能够创建使用Google的OAuth和...

    支付宝登录接口

    该资源是支付宝提供给用户使用的接口,用户可以对其中的代码进行修改以实现自己想实现的功能

    open-banking-auth-sdk-nodejs:开放银行授权NodeJS SDK

    该SDK提供了用于将Open Banking授权流集成到NodeJs服务器应用程序中的工具。 该存储库包含两个子文件夹: / src包含SDK源代码/ example包含有关如何使用SDK的示例如何使用SDK 首先,请通读API文档的“授权”部分。 ...

    JavaScript_GPT Auth提供了一个用户友好的解决方案,可以为自定义GPT快速设置oauth并自托管它.zip

    GPT是一种基于Transformer架构的大型语言模型,由OpenAI开发。它通过预训练学习大量的文本数据,能够理解和生成人类类似的自然语言。开发者通常会将GPT集成到自己的应用中,提供智能问答、文本生成等服务。然而,...

    NodeJS-User_auth0

    `express-open-id-connect` 是一个Express中间件,它封装了OpenID Connect实现的复杂性,使得在Express应用中集成身份验证变得简单。它负责处理与身份提供者的交互,如初始化会话、处理重定向、验证令牌等。 **四、...

    auth-vk:AUTH-VK是功能强大的Node.js模块,可让您轻松登录Vkontakte。

    :open_book: :robot: 特征 VKontakte API的100%覆盖率 可预测的抽象 处理大量数据 简易授权表 安装 12.0.0或更高版本 NPM npm i auth-vk npm i passport 与图书馆的互动 Послеустановкибибл...

    scm-manager-oidc-plugin:SCM Manager插件支持Open ID Connect(OIDC)

    scm-auth-oidc-插件 这是一个SCM Manager插件,它使您可以使用外部OpenID Connect Provider进行用户注册和身份验证。 为了进行测试和集成,我们已经使用Keycloak身份和访问管理软件( )验证了设置。 配置 从插件...

    golang-open-id:使用Go Lang,Mongodb制作简单的开放ID

    具有开放ID的Golang身份验证-演示 该应用程序将向您展示如何建立和保护注册,登录帐户。 您将使用Go创建一个API,并使用React创建一个将消耗您的API的前端。 您将使用Auth0保护API,以便只有经过身份验证的用户才能...

    openstack-HA部署

    使用galera进行部署,需要先进行yum更新和升级,然后安装MariaDB-Galera-server和MariaDB-client,再对配置文件进行编辑,设置wsrep_provider、wsrep_cluster_address、wsrep_sst_auth等参数,并重启mysql。...

    auth-server:适用于CLI工具的github auth-server

    在本例中,从CLI打开带有查询参数id的URL: open(https://npm-janitor.herokuapp.com/login?id=42) 用户登录并为注册的应用程序提供权限,然后看到一条消息: DONE! CHECK YOUR CLI DONE! CHECK YOUR CLI 。 在...

    支付宝第三方登录java版,手写可用

    1,https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=2019090***862044&scope=auth_user&redirect_uri=http://****.com/success1 第一步先拼接字符串,然后浏览器访问该字符串,app_id为APPID,...

Global site tag (gtag.js) - Google Analytics