重要的提醒:
如果您注册进行测试,请转到您的个人资料设置,并根据您的兴趣添加删除个人资料.
尝试使用Facebook登录我的网站:
我收到以下错误:
URL已阻止:此重定向失败,因为重定向URI未在应用的客户端OAuth设置中列入白名单.确保启用了客户端和Web OAuth登录,并将所有应用程序域添加为有效的OAuth重定向URI.
我settings在Facebook的基础知识是:
website:http://openstrategynetwork.com/在高级选项卡中,Valid OAuth redirect URIs设置为:
http://openstrategynetwork.com/_oauth/facebook?close
应用程序是public.
应用密钥和秘密是正确的.我正在使用Meteor及其帐户包.
我正在尝试创建一个基于.NET的客户端应用程序(在WPF中 - 虽然目前我只是将其作为控制台应用程序)与一个支持OAuth的应用程序集成,特别是Mendeley(http:// dev .mendeley.com),显然使用三足OAuth.
这是我第一次使用OAuth,开始使用它时遇到了很多困难.我发现了几个.NET OAuth库或帮助程序,但它们似乎比我想象的要复杂得多.我想要做的就是能够向Mendeley API发出REST请求并获得回复!
到目前为止,我已经尝试过:
第一个(DotNetOpenAuth)似乎可以做我需要的,如果我花了几个小时试图弄清楚如何.我可以说,第二个和第三个不支持Mendeley发回的验证码 - 虽然我可能错了:)
我从Mendeley获得了消费者密钥和秘密,并且通过DotNetOpenAuth,我设法通过Mendeley页面启动了一个浏览器,为用户提供了进入应用程序的验证码.然而,在这一点上,我迷路了,无法弄清楚如何合理地将其提供给应用程序.
我非常愿意承认我不知道从哪里开始(虽然看起来有一个相当陡峭的学习曲线) - 如果有人能指出我正确的方向我会很感激!
我觉得我在这里服用疯狂的药片.通常,对于任何给定的任务,总有一百万个库和样本浮动在网络上.我试图通过使用JSON网络令牌(JWT)的描述来实现与谷歌的"服务帐户"验证这里.
但是,只有PHP,Python和Java中的客户端库.即使在Google认证之外搜索JWT示例,JWT概念也只有蟋蟀和草稿.这真的是新的,可能是谷歌专有系统吗?
我可以设法解释的最接近的Java样本看起来非常密集和令人生畏.在C#中必须有一些我至少可以开始的东西.任何帮助都会很棒!
我意识到OAuth规范没有指定任何关于ConsumerKey,ConsumerSecret,AccessToken,RequestToken,TokenSecret或Verifier代码的来源,但我很好奇是否有任何创建显着安全令牌的最佳实践(特别是令牌/秘密组合).
在我看来,创建令牌有几种方法:
(1)的优点是数据库是看起来最安全的信息的唯一来源.对(2)或(3)进行攻击会更难.
散列实数据(2)将允许从可能已知的数据重新生成令牌.可能没有真正为(1)提供任何优势,因为无论如何都需要存储/查找.比(1)更多的CPU密集型.
加密真实数据(3)将允许解密以了解信息.与(1)和(2)相比,这将需要更少的存储空间和更少的查找,但也可能不太安全.
是否还有其他方法/优点/缺点需要考虑?
编辑:另一个考虑因素是令牌中必须有某种随机值,因为必须存在过期和重新发行新令牌的能力,因此它不能只包含真实数据.
关注问题:
是否有最小的令牌长度,以显着加密安全?据我了解,更长的令牌秘密会创建更安全的签名.这种理解是否正确?
从散列角度来看,使用特定编码优于另一种编码是否有优势?例如,我看到很多使用十六进制编码的API(例如GUID字符串).在OAuth签名算法中,令牌用作字符串.使用十六进制字符串,可用字符集将比使用Base64编码的字符集小得多(更可预测).在我看来,对于两个长度相等的字符串,具有较大字符集的字符串将具有更好/更宽的散列分布.在我看来,它会提高安全性.这个假设是否正确?
OAuth规范在11.10熵的熵中提出了这个问题.
我在Google和StackOverflow上搜索了我的问题的答案,但我找不到答案.
我想将access_token存储到我的数据库以进行脱机访问,我想确保指定列的正确长度.
我甚至无法找到数字和字符串之间的数字或混合.
SAML与OAuth联合登录有什么区别?如果公司想要使用第三方Web应用程序,并且还希望单点登录并成为身份验证机构,那么哪种解决方案更有意义?
是否可以通过Google API从用户的个人资料中获取信息?如果可能,我应该使用哪个API?
我对这些信息感兴趣:
从用户的个人资料中获取其他信息也很酷.
要使用google drive api,我必须使用OAuth2.0进行身份验证.我对此有一些疑问.
客户端ID和客户端密钥用于标识我的应用程序是什么.但是如果它是客户端应用程序,它们必须是硬编码的.因此,每个人都可以反编译我的应用程序并从源代码中提取它们.这是否意味着一个糟糕的应用程序可以通过使用好的应用程序的客户端ID和秘密伪装成一个好的应用程序?所以用户会显示一个屏幕,要求授予一个好应用程序的权限,即使它实际上是由一个糟糕的应用程序询问?如果是,我该怎么办?或者实际上我不应该担心这个?
在移动应用程序中,我们可以将webview嵌入到我们的应用程序中.并且很容易在webview中提取密码字段,因为请求许可的应用程序实际上是"浏览器".那么,移动应用程序中的OAuth没有客户端应用程序无法访问服务提供商的用户凭据的好处?
我正在我的身份验证服务器中实现OAuth 2.0 JWT access_token.但是,我不清楚JWT"aud"声明与client_id http标头值之间的差异.它们是一样的吗?如果没有,你能解释两者之间的区别吗?
我怀疑"aud"应该引用资源服务器,而client_id应该引用认证服务器识别的客户端应用程序之一(即web应用程序或IOS应用程序).
在我目前的情况下,我的资源服务器也是我的Web应用程序客户端.
我必须实现安全的RESTful Web服务.我已经使用谷歌进行了一些研究但是我被卡住了.
选项:
TLS(HTTPS)+
是否有更多可能的选择?如果OAuth那么什么版本?它甚至重要吗?从我到目前为止所读到的OAuth 2.0与持有令牌(没有签名)似乎是不安全的.
我发现了另一篇关于基于REST的身份验证的非常有趣的文章.