Questions tagged «oauth»

OAuth(开放授权)是客户端应用程序代表用户访问受保护资源的规范。它是作为用户将其登录凭据分发给第三方应用程序的替代方法而开发的。

7
合并多个用户帐户的体系结构
好的,我有一个网站,您可以在此注册自己并登录。您也可以使用您的Facebook,Twitter或linkedin帐户登录。 用户只能注册一个帐户,这一点很重要。因此,如果用户使用不同的方法登录,我想合并他们的帐户。解决此问题的最佳解决方案是什么? 例如,用户使用他的Facebook帐户登录。我使用这些数据自动为他注册一个帐户。我应该发送包含我们网站用户名和密码的电子邮件吗?(如果使用Facebook的政策可以的话)。我应该给他们第二个屏幕,他们可以在其中输入用户名和密码吗?但这不是用您的Facebook帐户登录的想法。它应该简化您的参与程序。 用户也有可能在我们的网站上注册了自己,并且下次他使用自己的Twitter帐户登录时。如何将这两个帐户合并为一个?最好的方法是什么? 所以基本上我的问题是:用户有4种不同的方式成为我们网站的成员。如果用户决定使用多种方式,如何确保所有这四种方式仅创建一个帐户?确保它不会对用户本人造成麻烦的最佳流程是什么? 编辑: 我问了这个问题3年后,我在一系列文章中给出了答案:https : //www.peternijssen.nl/social-network-authentication-setup/ https://www.peternijssen.nl/social- network-authentication-google / https://www.peternijssen.nl/social-network-authentication-merging-accounts/ https://www.peternijssen.nl/social-network-authentication-twitter-facebook/


3
OAuth 2.0承载令牌到底是什么?
根据RFC6750- OAuth 2.0授权框架:承载令牌用法,承载令牌为: 具有该令牌的任何一方(“承载者”)可以以任何其他任何拥有它的方可以使用的方式使用该令牌的属性的安全令牌。 对我来说,这个定义是模糊的,我找不到任何规范。 假设我正在实现授权提供者,我可以为承载令牌提供任何类型的字符串吗? 可以是随机字符串吗? 它必须是某些属性的base64编码吗? 应该将其散列吗? 服务提供商是否需要查询授权提供商才能验证此令牌? 感谢您的指导。

9
OAuth授权代码和隐式工作流程有什么区别?什么时候使用每个?
OAuth 2.0具有多个工作流程。关于这两个,我有几个问题。 授权码流程 -用户从客户端应用登录,授权服务器向应用返回授权码。然后,该应用将授权代码交换为访问令牌。 隐式授予流程 -用户从客户端应用程序登录,授权服务器直接向客户端应用程序颁发访问令牌。 两种方法在安全性方面有什么区别?哪一个更安全,为什么? 当服务器可以直接发出访问令牌时,我看不出在一个工作流程中添加额外步骤(令牌的交换授权代码)的原因。 不同的网站说,当客户端应用程序可以确保凭据安全时,将使用授权代码流。为什么?
165 oauth  oauth-2.0 

7
OAuth:如何使用本地网址进行测试?
我正在尝试测试OAuth按钮,但是它们(Facebook,Twitter,LinkedIn)全部回来,但都显示错误,表明我无法从本地 URL 测试或使用它们。 如果人们似乎都需要非开发和非本地连接环境,人们通常如何使用OAuth进行开发?
154 oauth  localhost 


2
使用OAuth保护我的REST API,同时仍然允许通过第三方OAuth提供程序进行身份验证(使用DotNetOpenAuth)
我有一个带有简单REST API的产品,因此该产品的用户可以直接与该产品的功能集成,而无需使用我的Web用户界面。 最近,我吸引了许多第三方的兴趣,他们希望将其桌面客户端与API集成在一起,以允许我的产品的用户使用该第三方应用程序访问其数据。 我已经看到要使用Twitter的应用程序通过Twitter托管的登录页面进行身份验证,该登录页面授予特定的应用程序访问该用户数据的权限。单击“允许”或“拒绝”按钮,身份验证过程完成。Facebook尽我所能使用相同的机制。 经过进一步研究,这似乎是在使用OAuth,并且由于我的API基于.Net,所以我认为我应该使用DotNetOpenAuth并提供类似的机制。不幸的是,样本很少被记录(如果有的话),而我在网上可以找到的唯一教程似乎集中在帮助您为用户提供登录机制,以便他们可以使用第三方提供商登录到您的网站。 我真正想做的是让我的REST API处理我的Web应用程序的所有核心身份验证和业务逻辑,并且实际上,我的Web应用程序本质上是另一个仅通过OAuth使用API​​的应用程序。用户将直接使用其用户名和密码或通过第三方提供商(例如MyOpenID或Facebook)在网站上进行身份验证,然后网站将以某种方式使用返回的令牌对REST API进行身份验证。 基本上,我需要我的API才能以某种方式托管OAuth服务,但也需要用户使用第三方OAuth服务。我忍不住想,我对OAuth的掌握不足,无法决定我是否使事情变得过于复杂,或者我试图做的事是做事的好坏。 有人可以至少给我提供我需要采取的步骤的广泛概述,或者我应该怎么看才能实现这一目标?还是让我指点一些教程?还是高估我的建议,并告诉我我正在(架构上)解决所有错误?

14
移动应用中的OAuth机密
使用OAuth协议时,您需要从要委派给该服务的秘密字符串。如果您是在Web应用程序中执行此操作,则可以仅将秘密存储在数据库或文件系统中,但是在移动应用程序(或与此相关的桌面应用程序)中处理秘密的最佳方法是什么? 将字符串存储在应用程序中显然不好,因为有人很容易找到并滥用它。 另一种方法是将其存储在您的服务器上,并让应用在每次运行时都将其获取,而不是将其存储在手机上。这几乎一样糟糕,因为您必须在应用程序中包含URL。 我能想到的唯一可行的解​​决方案是,首先正常获取访问令牌(最好使用应用程序内部的Web视图),然后将所有进一步的通信路由到我们的服务器,这会将秘密添加到请求数据中并进行通信。与提供者。再说一次,我是安全菜鸟,所以我真的很想听听一些知识渊博的人们对此的看法。在我看来,大多数应用程序都不会采用这些长度来保证安全性(例如,Facebook Connect似乎假定您将秘密信息直接放入应用程序中的字符串中)。 另一件事:我不认为最初请求访问令牌涉及秘密,因此可以在不涉及我们自己的服务器的情况下完成。我对么?

9
如何验证Google身份验证API访问令牌?
如何验证Google身份验证访问令牌? 我需要以某种方式查询Google并询问:[给定的访问令牌]是否对[example@example.com] Google帐户有效? 简短版本: 很明显,如何通过Google身份验证Api ::用于Web应用程序的OAuth身份验证提供的访问令牌可以用于从一系列Google服务中请求数据。目前尚不清楚如何检查给定的访问令牌对于给定的Google帐户是否有效。我想知道如何。 较长版本: 我正在开发使用基于令牌的身份验证的API。在提供有效的用户名+密码或从N个可验证服务中的任何一个提供第三方令牌后,将返回令牌。 谷歌是第三方服务之一,它允许用户使用其Google帐户针对我的服务进行身份验证。以后将扩展到包括Yahoo帐户,受信任的OpenID提供程序等。 基于Google的访问的示意图示例: 替代文字http://webignition.net/images/figures/auth_figure002.png “ API”实体在我的完全控制之下。“公共界面”实体是任何基于Web或桌面的应用程序。有些公共接口在我的控制之下,另一些则不会,而另一些我可能永远都不知道。 因此,我无法信任在步骤3中提供给API的令牌。该令牌将与相应的Google帐户电子邮件地址一起提供。 我需要以某种方式查询Google并询问:此访问令牌是否对example@example.com有效? 在这种情况下,example @ example.com是Google帐户的唯一标识符-某人用来登录其Google帐户的电子邮件地址。不能假定此地址为Gmail地址-某人可以拥有一个Google帐户而没有一个Gmail帐户。 Google文档明确说明了如何使用访问令牌从许多Google服务中检索数据。似乎没有任何内容说明您如何首先检查给定的访问令牌是否有效。 更新 令牌对N个Google服务有效。我无法尝试针对Google服务使用令牌作为验证令牌的方式,因为我不知道给定用户实际使用的所有Google服务的子集。 此外,我绝不会使用Google身份验证访问令牌来访问任何Google服务,仅是一种验证假定的Google用户实际上是他们所说的身份的一种方式。如果还有另一种方法,我很乐意尝试。


5
如何在Android中安全存储访问令牌和机密?
我将使用oAuth从Google提取邮件和联系人。我不想让用户每次登录都获得访问令牌和密码。据我了解,我需要将它们与应用程序一起存储在数据库或中SharedPreferences。但是我对此有点担心。我读到您可以加密和解密令牌,但是攻击者很容易反编译apk和类并获取加密密钥。 在Android中安全存储这些令牌的最佳方法是什么?

14
Facebook登录消息:“ URL被阻止:此重定向失败,因为该重定向URI未在应用程序的客户端OAuth设置中列入白名单。”
重要通知: 如果您注册测试,请转到个人资料设置,然后根据自己的兴趣添加删除个人资料。 尝试使用Facebook登录到我的网站: 我收到以下错误: URL阻止:此重定向失败,因为在应用程序的客户端OAuth设置中未将重定向URI列入白名单。确保客户端和Web OAuth登录已打开,并将所有应用程序域添加为有效OAuth重定向URI。 我settings在Facebook上的(基本知识)是: 应用程序域:openstrategynetwork.com 的网站网址website:http : //openstrategynetwork.com/ 在高级标签中,Valid OAuth redirect URIs设置为: http://openstrategynetwork.com/_oauth/facebook?close 应用程式为public。 此处有更多设置(高级): 应用密钥和机密正确。我正在使用流星及其帐户套餐。


3
页面的Facebook访问令牌
我有一个Facebook页面,我想从中获取一些东西。第一件事是提要,根据我的阅读,它们是公开的(不需要access_token)。但是我也想获取事件……它们不是公开的,需要access_token。 我不希望用户登录Facebook或类似的东西。我只想从该页面推送所有数据。这就是为什么我已经丢弃了我在这里找到的许多示例以及在https://developers.facebook.com/blog/post/500/上找到的示例的原因,因为它们希望用户登录或要求我进行不干预的某些用户操作。 我想要的是我的Facebook应用程序具有完全授权和access_token来从我拥有的这个Facebook页面(管理员)中推送数据。这可能吗?我已经尝试了很多东西,但似乎没有任何效果。 我尝试点击以下网址:https : //www.facebook.com/dialog/oauth? client_id = 150635421702954 & redirect_uri = http : //MY_URL / & scope = manage_pages & response_type = token & fields = access_token-将MY_URL更改为我的网站,并要求授权编辑每个我拥有的页面。即使不是我想要的东西,我也单击了但没有access_token作为回报...

17
Twitter oAuth callbackUrl-本地主机开发
是否还有其他人很难让Twitter的oAuth的回调URL到达他们的本地主机开发环境。显然,它已被禁用。http://code.google.com/p/twitter-api/issues/detail?id=534#c1 没有人有解决方法。我真的不想停止我的发展
112 twitter  oauth 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.