日期:2014-05-17  浏览次数:20438 次

关于Oauth2.0 服务端的请教各位大侠
     前一阵时间一直是在做用别人的帐户登录 ,也就是大家熟知的Oauth ,但是现在我们需要有自己的服务器 ,让别人也可以用我的帐户 ,所以开始着手做Oauth的服务端 。但是资料很少 ,英文的也看了很多 ,不过帮助不大 ,我用的是C#,找了几个源码项目但是不是有问题 ,就是太过于复杂 。so ,请教各位大侠,如果做过Oauth服务端的,麻烦帮忙给给思路 ,不一定非要关键代码 ,比如有相关介绍文档什么的多可以 。
     我在google code上找到了Oauth的,如图 不过这些都是cs文件 ,我应该如何使用呢 ?
------解决方案--------------------
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的官方协议去写,这样适应面更广。
------解决方案--------------------
你下的这套代码  里面有个HttpModule应该是个主要的入口,将他加入到你的Test IIS工程上,6.0 <httpModules>  7.0<modules>  然后试试
------解决方案--------------------
只调用过,没写过。

看看下面的讨论:

OAuth 2.0 Service Provider .NET libraries
http://stackoverflow.com/questions/3997172/oauth-2-0-service-provider-net-libraries
------解决方案--------------------
引用:
只调用过,没写过。

看看下面的讨论:

OAuth 2.0 Service Provider .NET libraries
http://stackoverflow.com/questions/3997172/oauth-2-0-service-provider-net-libraries


好像几个人说这个

------解决方案--------------------
DotNetOpenAuth
http://sourceforge.net/projects/dnoa/
------解决方案--------------------
帖链接的时候总是不小心按Ctrl+Enter把回帖发出去