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类库
分享到:
相关推荐
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的登录步骤以便快速访问会议功能。实现这一目的的方法是在`base\auth\...
- `Auth_OpenID`类库:这是实现OpenID的基础,包含了各种处理OpenID请求和响应的类。 - `Consumer`类:消费者(RP)的核心,用于初始化OpenID进程,处理重定向和验证结果。 - `Server`类(可选):如果你的网站也想...
`id`是病历ID,`hospital_id`是医院ID,`doctor_id`是医生ID,`patient_id`是患者ID,`department_id`是科室ID,`type_id`区分接诊类型(0为初诊,1为复诊,2为急诊),`is_contagious`表示是否传染(0否,1是),`...
4. **Configuration**: 用于配置OAuth和OpenID设置,如客户端ID、秘密、回调URL等。 5. **Examples**: 示例项目演示如何在实际应用中使用DotNetOpenAuth。 深入研究DotNetOpenAuth源代码,开发者可以了解如何处理...
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" }] 总结 ...
商户授权成功后,pc或者钱包客户端会跳转至开发者定义的回调页面(即redirect_uri参数对应的url),在回调页面请求中会带上当次授权的授权码app_auth_code和开发者的app_id,示例如下:
@ 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
// Create an auth object with client id and secretconst auth = new Auth ( client_id , client_secret ) ;// Fetch your access tokenauth . clientCredentialsFlow . fetchAccessToken ( ) . then ( response =...
OAuth 2.0和Open ID Connect 目标: 了解什么是OAuth v2.0和Open ID Connect,以及它们之间的关系 了解OAuth和Open ID Connect解决的问题 了解OAuth适用于不同类型的应用程序和用例 能够创建使用Google的OAuth和...
该资源是支付宝提供给用户使用的接口,用户可以对其中的代码进行修改以实现自己想实现的功能
该SDK提供了用于将Open Banking授权流集成到NodeJs服务器应用程序中的工具。 该存储库包含两个子文件夹: / src包含SDK源代码/ example包含有关如何使用SDK的示例如何使用SDK 首先,请通读API文档的“授权”部分。 ...
GPT是一种基于Transformer架构的大型语言模型,由OpenAI开发。它通过预训练学习大量的文本数据,能够理解和生成人类类似的自然语言。开发者通常会将GPT集成到自己的应用中,提供智能问答、文本生成等服务。然而,...
`express-open-id-connect` 是一个Express中间件,它封装了OpenID Connect实现的复杂性,使得在Express应用中集成身份验证变得简单。它负责处理与身份提供者的交互,如初始化会话、处理重定向、验证令牌等。 **四、...
:open_book: :robot: 特征 VKontakte API的100%覆盖率 可预测的抽象 处理大量数据 简易授权表 安装 12.0.0或更高版本 NPM npm i auth-vk npm i passport 与图书馆的互动 Послеустановкибибл...
scm-auth-oidc-插件 这是一个SCM Manager插件,它使您可以使用外部OpenID Connect Provider进行用户注册和身份验证。 为了进行测试和集成,我们已经使用Keycloak身份和访问管理软件( )验证了设置。 配置 从插件...
具有开放ID的Golang身份验证-演示 该应用程序将向您展示如何建立和保护注册,登录帐户。 您将使用Go创建一个API,并使用React创建一个将消耗您的API的前端。 您将使用Auth0保护API,以便只有经过身份验证的用户才能...
使用galera进行部署,需要先进行yum更新和升级,然后安装MariaDB-Galera-server和MariaDB-client,再对配置文件进行编辑,设置wsrep_provider、wsrep_cluster_address、wsrep_sst_auth等参数,并重启mysql。...
在本例中,从CLI打开带有查询参数id的URL: open(https://npm-janitor.herokuapp.com/login?id=42) 用户登录并为注册的应用程序提供权限,然后看到一条消息: DONE! CHECK YOUR CLI DONE! CHECK YOUR CLI 。 在...
1,https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=2019090***862044&scope=auth_user&redirect_uri=http://****.com/success1 第一步先拼接字符串,然后浏览器访问该字符串,app_id为APPID,...