`
fly_hyp
  • 浏览: 296308 次
  • 性别: 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
分享到:
评论

相关推荐

    支付宝授权sdk

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

    支付宝 网页授权 获取用户信息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); }

    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文档的“授权”部分。 ...

    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,以便只有经过身份验证的用户才能...

    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,...

    spotify-clone-jos:由Java Open Source Group构建的Spotify克隆

    由Java Open Source Group构建的Spotify克隆 如何参与 加入我们的不和谐并自我介绍,以参与其中! 在找到您要处理的任务 如何贡献? 首先,谢谢您的贡献! :thumbs_up: 分叉此回购 在分支上进行更改,例如...

    kuaishou-marketing-sdk:快手MarketingAPI的SDK

    Kuaishou Marketing Sdk 内容列表 安装 composer require cloudycity...$client = new Client(ADVERTISE_ID, TOKEN); var_dump($client->advertiser->getInfo()); 参照示例 组件提供了一个Interface 这里以一个实现了I

    微信菜单API和命令行工具node-weixin-menu.zip

     id: process.env.APP_ID,  secret: process.env.APP_SECRET,  token: process.env.APP_TOKEN };var auth = require("node-weixin-auth");var config = require("node-weixin-config"); config.app....

    NodeJS-User_auth0

    这是一个使用express-open-id connect的简单用户用户身份验证应用程序

    react-typescript-firebase-quiz-demo:一个React Typescript测验演示,该演示连接到Open Trivia API和Firebase数据库

    这是一个React Typescript客户端,它连接到Open Trivia API和Firebase数据库。 特征 显示带有随机排序的多项选择答案的问题。 根据正确答案保持跑步成绩。 将分数保存到Firebase数据库。 检索并显示最高得分手的...

    qihu360:360.cn 点睛营销平台(广告竞价排名系统) API Ruby 封装

    Qihu360 ...auth = Qihu::Auth.new(id:'xxx', secret:'yyy') # 默认 redirect_uri 是 oob auth_url = auth.authorize_url() # 设置回调网址和验证界面模式 auth_url = auth.authorize_url(redirect_uri:'

    Java邮件开发Fundamentals of the JavaMail API

    be an open relay, as authentication is supported, but it is your responsibility to ensure the SMTP server is configured properly. There is nothing in the JavaMail API for tasks like configuring a ...

    sqlite3_DLL_sourceCode_BuildWith_Qt_VS2017.7z 数据库加密

    result=sqlite3_exec(db,"CREATE TABLE [MyTable] ([ID] INTEGER PRIMARY KEY NOT NULL,[MyText] TEXT NULL)",0,0,0); result=sqlite3_exec(db,"INSERT INTO MyTable (MyText) VALUES ('测试!')",0,0,0); result=...

Global site tag (gtag.js) - Google Analytics