关于Oauth2.0 服务端的请教各位大侠 这个是Oauth1.0的 ,其实我现在想做2.0的 ,不过总是没有找到合适的资料,唉,着急啊 ,谢谢各位了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的博客里面有一个写的是SAML协议的服务端。跟OAuth的类似,可以看看,先熟悉下原理。 OAuth其实往简单了说有以下几个特点:1. 往往整合现有的分散的用户存储中心,比如SQL,AD,以及其他方式的验证2. 肯定是将上述的用户存储中心的用户属性进行统一的规范化,比如用oauth.id.name来代表SQL的Name Column或者AD的samaccountaname或者其他验证方式的name,其他属性类似。3. 肯定将上述的oauth.id.name oauth.id.phone oauth.id.address进行签名或者加密4. OAuth的前一步其实是OpenID, OpenID只负责登录的验证,并不返回任何真正有用的信息。比如你有个OpenId服务器,登录后只返回给你一个Token=123456789,这个Token就像电影票,你可以拿着这张票来OpenId服务器中获取OAuth协议的那些身份和权限(第三步那些东西),然后这个Token=123456789就作废了,想要再次取得新的OAuth协议的身份和权限,需要从OpenID重来一次。当然,如果你买了电影票,今天不去看,明天也作废了。5. 每个使用OpenID和OAuth的依赖方服务器(客户端服务器,需要实现OpenID登录或者OAuth验证的服务器),在OpenID和OAuth服务器上都需要有唯一的配置,也就是说,每个依赖方服务器在OpenID和OAuth服务器上都需要有唯一识别码,这样通过https://openid.auth/oid?clientid=[依赖方识别码]才能正确的使用OpenID和OAuth6. 每个OpenID和OAuth对应一个依赖方服务器都需要有一套独立的配置,比如返回哪些属性,需要哪些信息等,这样才能保证验证和登录的唯一性,不能说https://openid.auth/oauth?clientid=[依赖方识别码]&require=oauth.id.name的时候返回给人家一大堆的属性。……暂时想到这么多,OpenID研究的不太多,但是感觉基于声明的验证方式都是一个路子,你还需要按照openid的官方协议去写,这样适应面更广。 你下的这套代码 里面有个HttpModule应该是个主要的入口,将他加入到你的Test IIS工程上,6.0 <httpModules> 7.0<modules> 然后试试 只调用过,没写过。看看下面的讨论:OAuth 2.0 Service Provider .NET librarieshttp://stackoverflow.com/questions/3997172/oauth-2-0-service-provider-net-libraries DotNetOpenAuthhttp://sourceforge.net/projects/dnoa/ 帖链接的时候总是不小心按Ctrl+Enter把回帖发出去 我是做java的,我们公司也有同样的需求,做个OAuth2.0的服务端,楼主现在摸索的怎么样,能不能讲讲你的理解和思路,给我点方向,现在看一些开发平台的网站API都是客户端的实现,大致晓得了OAuth的验证原理,但具体如何实现什么的,望指教 怎么关闭模式窗体 弹出新窗口 access2007的数据设了密码就没法读取了, 怎么解决, SOS... 如何将数值格式化成固定长度的字符串 如何修改这条代码 最近做的一个WEB2.0框架,请各位提出批评和建议 http://candylyg.stariver.cn 关于执行性能 怎样验证DataGrid单元格文本?(在线急等!!!) SqlDataReader为啥读取的数据少很多,但用SqlDataAdapter读取是对 请问用DataReader怎么读取列的名字? 数据库控件精准定位问题 winform 动态生产一个button来填充字符串中的占位符?
跟OAuth的类似,可以看看,先熟悉下原理。
1. 往往整合现有的分散的用户存储中心,比如SQL,AD,以及其他方式的验证
2. 肯定是将上述的用户存储中心的用户属性进行统一的规范化,比如用oauth.id.name来代表SQL的Name Column或者AD的samaccountaname或者其他验证方式的name,其他属性类似。
3. 肯定将上述的oauth.id.name oauth.id.phone oauth.id.address进行签名或者加密
4. OAuth的前一步其实是OpenID, OpenID只负责登录的验证,并不返回任何真正有用的信息。比如你有个OpenId服务器,登录后只返回给你一个Token=123456789,这个Token就像电影票,你可以拿着这张票来OpenId服务器中获取OAuth协议的那些身份和权限(第三步那些东西),然后这个Token=123456789就作废了,想要再次取得新的OAuth协议的身份和权限,需要从OpenID重来一次。当然,如果你买了电影票,今天不去看,明天也作废了。
5. 每个使用OpenID和OAuth的依赖方服务器(客户端服务器,需要实现OpenID登录或者OAuth验证的服务器),在OpenID和OAuth服务器上都需要有唯一的配置,也就是说,每个依赖方服务器在OpenID和OAuth服务器上都需要有唯一识别码,这样通过https://openid.auth/oid?clientid=[依赖方识别码]才能正确的使用OpenID和OAuth
6. 每个OpenID和OAuth对应一个依赖方服务器都需要有一套独立的配置,比如返回哪些属性,需要哪些信息等,这样才能保证验证和登录的唯一性,不能说https://openid.auth/oauth?clientid=[依赖方识别码]&require=oauth.id.name的时候返回给人家一大堆的属性。
……
暂时想到这么多,OpenID研究的不太多,但是感觉基于声明的验证方式都是一个路子,你还需要按照openid的官方协议去写,这样适应面更广。
http://stackoverflow.com/questions/3997172/oauth-2-0-service-provider-net-libraries
http://sourceforge.net/projects/dnoa/