Questions tagged «oauth»

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

1
具有不同身份验证标头的HttpClient单个实例
鉴于.net HttpClient在设计时考虑了重用,并且旨在长期存在,并且在短期实例中已报告内存泄漏。在为多个用户调用端点时,要使用不同的承载令牌(或任何授权标头)对给定端点进行静态调用的地方有哪些指导方针? private void CallEndpoint(string resourceId, string bearerToken) { httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", bearerToken); var response = await httpClient.GetAsync($"resource/{resourceid}"); } 鉴于上述代码可以由Web应用程序上的任意数量的线程调用,因此很可能第一行中设置的标头与调用资源时使用的标头不同。 在不使用锁引起争用和维护无状态Web应用程序的情况下,为单个端点创建和部署HttpClient的推荐方法是什么(我目前的做法是为每个端点创建单个客户端)? 生命周期 尽管HttpClient确实间接实现了IDisposable接口,但是HttpClient的推荐用法是不要在每次请求后都将其丢弃。只要您的应用程序需要发出HTTP请求,HttpClient对象就可以存在。在多个请求中都存在一个对象,这为设置DefaultRequestHeaders提供了空间,并且使您不必像HttpWebRequest那样在每个请求中都重新指定诸如CredentialCache和CookieContainer之类的内容。

2
什么是访问令牌与访问令牌密钥以及消费者密钥与消费者密钥
我使用Oauth已有一段时间了,但从未完全确定这四个术语(以及每个术语的功能)之间的区别。我经常看到(例如在Twitter Public API中) Consumer key: Consumer secret: Access token: 和 Access token secret: 领域,但我从未确切知道他们在做什么。我知道Oauth可以对应用进行授权(让它们代表用户运行),但是我不理解这四个授权条款之间的关系,因此不愿意解释。 基本上,我不确定访问令牌或令牌密钥是如何生成的,它们的存储位置以及它们之间或与使用者密钥和密钥之间的关系。 谢谢
78 oauth 

1
如何保护OAuth使用者的​​机密安全,以及在受到威胁时如何做出反应?
这个问题是关于尝试了解在Android等移动平台上实施oauth所涉及的安全风险。这里的假设是我们有一个Android应用程序,该用户程序在代码中嵌入了使用者密钥/秘密。 假设一个消费者的秘密已经被泄露,而黑客已经掌握了这个秘密,那么这将带来什么后果呢? 损害的消费者秘密假设 我是正确的,是说损害的消费者秘密本身不会影响用户的安全,也不会影响与用户进行交互的存储在启用OAuth的提供程序上的任何数据。数据本身不会受到破坏,黑客也无法检索。 黑客将需要持有有效的用户访问令牌,而这要难得多。 黑客如何处理受侵害的消费者秘密? 我也正确指出以下内容: 黑客可以设置/发布模仿我的应用程序的应用程序。 黑客可以吸引将要经过OAuth流程的用户,通过黑客的OAuth舞蹈(使用受害的用户密钥/秘密)检索访问令牌。 用户可能会认为他正在处理我的应用程序,因为他会在授权过程中看到一个熟悉的名称(用户密钥)。 当消费者通过黑客发出请求时,黑客可以轻松地拦截访问令牌,并且与消费者秘密结合在一起现在可以代表我对请求进行签名,以访问我的资源。 最终用户的影响 。在假设 黑客使用我的消费者秘密设置了应用程序/站点 我的一位用户被骗去授权访问该应用程序/站点 可能发生以下情况: 最终用户可能会注意到发生了一些可疑的情况,并将恶意应用告知服务提供商(例如Google) 然后,服务提供商可以撤消使用者密钥/秘密 OAuth使用者(我的应用程序)的影响: 我的应用程序(包含使用者的机密)将需要更新,否则所有我的客户将无法再授权我的应用程序代表他们的请求(因为我的使用者机密将不再有效)。 委派所有OAuth流量 尽管可以通过中间Web服务器委派许多OAuth交互(进行OAuth舞蹈并将访问令牌发送给用户),但也必须代理所有服务交互,作为使用者密钥/ secret是签署每个请求所必需的。这是将使用者密钥/秘密保存在移动应用程序外部并存储在中间Web服务器上更安全的位置的唯一方法吗? 替代 方案此代理有替代方案吗?是否可以将消费者秘密存储在中间Web服务器上,并且具有某种机制,使得Android应用程序(已在市场上发布并经过适当签名)可以对中间Web服务器发出安全请求,以获取消费者秘密并将其存储在应用内部?是否可以实施一种机制,使中间Web服务器“知道”这是一个要求获取用户机密的官方android应用程序,并且中间Web服务器将仅将用户机密分发给该特定android应用程序?

16
如何使用命令行从私有github存储库中下载单个原始文件?
在CI服务器上,我想获取一个在Github上维护的配置文件,以便可以在许多作业之间共享它。我正在尝试通过curl获取此文件,但是这些方法都失败了(我得到了404): # As advised by the oAuth docs curl -H 'Authorization: token the_token' -L -o setup.sh https://raw.github.com/org/repo/file # The url of the raw file after clicking to view it curl -L https://raw.github.com/org/repo/file?login=username&token=the_token
75 curl  github  oauth 


4
最好的OAuth2 C#库是什么?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 似乎许多应用程序提供商都在使用OAuth2允许API访问,例如Twitter和Facebook。是否有人使用良好的库来进行OAuth2处理,而该库足以在所有应用程序中使用?
71 c#  .net  asp.net  .net-3.5  oauth 

4
是否有节点OAuth服务器实施[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 6年前关闭。 改善这个问题 我只找到了用于nodejs的oauth客户端库。有人知道我在哪里可以找到服务器实现吗? 谢谢你, 浩。
70 node.js  oauth 

13
Facebook Oauth注销
我有一个使用Oauth 2与Facebook集成的应用程序。 我可以使用FB进行授权,并很好地查询其REST和Graph API,但是当我授权使用FB创建活动的浏览器会话时。然后,我可以注销应用程序,但是与FB的会话仍然存在,因此,如果其他任何人使用浏览器,他们都将看到以前的用户FB帐户(除非以前的用户也手动注销了FB)。 我要授权的步骤是: 致电[LINK:graph.facebook.com/oauth/authorize?client_id ...] 如果用户的浏览器尚没有活动的FB会话,则此步骤将打开Facebook登录/连接窗口。他们登录到Facebook后,便使用可以交换oauth令牌的代码重定向到我的网站。 使用(1)中的代码调用[LINK:graph.facebook.com/oauth/access_token?client_id ..] 现在,我有了一个Oauth令牌,并且用户的浏览器已登录到我的站点以及FB。 我调用了一堆API来做事:即[LINK:graph.facebook.com/me?access_token= ..] 假设我的用户想要注销我的网站。FB条款要求我执行“单点注销”,因此当用户注销我的网站时,它们也将从Facebook中注销。有观点认为这有点愚蠢,但是如果有任何实际的实现方法,我很乐意遵守。 我看到了以下建议: 答:我使用Javascript API登出:FB.Connect.logout()。好吧,我尝试使用它,但是它没有用,而且我不确定如何使用,因为我在网站上未以任何方式使用Javascript API。该会话不是由Javascript API维护或创建的,因此我不确定该如何终止它。 B.使用[LINK:facebook.com/logout.php]。前一段时间,一位管理员在Facebook论坛上提出了此建议。给出的示例与获取FB会话的旧方法(非oauth)有关,因此我认为我无法在我的情况下应用它。 C.使用旧的REST api expireSession或revokeAuthorization。我尝试了这两种方法,尽管它们确实使Oauth令牌过期,但它们不会使浏览器当前正在使用的会话无效,因此它没有任何作用,用户也没有退出Facebook。 我确实有点松懈,Facebook文档不完整,模棱两可,而且效果很差。论坛上的支持不存在,目前我什至无法登录Facebook论坛,除此之外,他们自己的FB Connect集成甚至无法在论坛上使用。不会激发太大的信心。 Ta为您提供的任何帮助。德里克 ps。不得不将HTTPS更改为LINK,因果报应不足以发布链接,这可能足够公平。
70 facebook  oauth  logout 


2
OAuth弹出式跨网域安全React.js
我对如何使用popup(window.open)在React中实现OAuth感兴趣。 例如,我有: mysite.com -这是我打开弹出窗口的地方。 passport.mysite.com/oauth/authorize - 弹出。 主要问题是如何在window.open(popup)和(popup)之间建立连接(window.opener众所周知,由于跨域安全性,window.opener为null,因此我们不能再使用它了)。 ⇑ window.opener每当您导航到不同的主机(出于安全原因)被删除,有没有办法解决它。如果可能的话,唯一的选择应该是在框架内付款。最上面的文档需要保留在同一主机上。 方案: 可能的解决方案: 使用此处setInterval所述检查打开的窗口。 使用交叉存储(不值得imho)。 那么,2019年推荐的最佳方法是什么? React包装器-https: //github.com/Ramshackle-Jamathon/react-oauth-popup

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.