问题标签 [2-legged]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oauth - HTTPS 上是否需要 OAuth(2-legged)
HTTPS 上是否需要 OAuth(2-legged)。在 3-legged 场景中,我们使用 oauth 进行委托。但是 Oauth(2-legged) over https 的目的是什么。
在我的场景中,我既是消费者又是用户,所以不需要授权,我使用 https,https 不可重播,也是安全通道。你说什么我应该使用 ouath
我不是在谈论 3-legged 或 http
ruby-on-rails - 我如何告诉控制器规范使用签名的 OAuth 请求
我正在为我的 api 构建一个 2-Legged OAuth 提供程序。一切都已正确连接,我可以从 rails 控制台进行签名调用。我遇到的问题是我无法将 OAuth 集成到controller_spec
.
这是我的服务器上的工作调用示例:
这是我在控制器测试中所做的:
该测试的输出:
以及来自 rails 日志的相应服务器调用:
我只是不知道为什么它不起作用:/我犯了一个明显的错误吗?
php - 什么是真正的 2-legged Oauth
我一直在探索我目前正在使用的 REST API 的 OAuth 版本 1.0。
我有 3 个身份验证方案
- 这涉及3方,服务提供者、消费者和用户。三足 Oauth 符合这种情况。
- 涉及两方,消费者和服务提供者。这是 2-legged Oauth 最适用的场景吗?如果是,那么流程是什么,因为根据我的理解,这与 HTTP 基本身份验证之间几乎没有区别。
- 我还在创建一种特殊类型的用户,它可以在没有用户授权的情况下随时访问当前登录的用户数据。在仍然实施 OAuth 的同时,这如何适应图片。
使用这种场景?如何巧妙地实施 Oauth,这如何帮助我理解 3-legged 和 2-legged Oauth 流程?
asp.net-mvc-3 - 在 MVC3 中对 HMAC 进行身份验证
我在 2-legged OAuth 的前提下构建自己的 Web 服务。
每个经过身份验证的请求都会包含一个 HMAC。
我知道可以这样做:
但这是相当讨厌的,因为 HMAC 需要包含在每个操作的参数中。它的弱类型和废话。
我想做这样的事情:
我找到了这个,它提到我应该看看自定义模态绑定器,所以我发现了这个,读完后我不确定如何让它工作。
我的目标是使用(我假设)放置在 URL 参数中的 HMAC 进行身份验证(/授权),即:http://www.website.com/foo/bar?username=xxx&hmac=xxxxxxxxx
我想知道是否有人有任何我可以阅读的参考资料或直接解决方案。
我也欢迎批评我对 API 安全的基本理解,或者我是如何做事的,我对这个领域相当陌生
security - OAuth 1.0a,2 条腿:如何安全地存储客户端的凭据(密钥/秘密)?
我是否更正了 OAuth 1.0a 凭据需要以明文形式(或以可以作为明文形式检索的方式)存储在服务器上,至少在进行 2 腿身份验证时?假设您使用的是 HTTPS 或其他 TLS,这难道不比使用用户名和加盐+散列密码安全得多吗?有没有办法以一种安全漏洞不需要撤销每一个凭据的方式存储这些凭据?
更详细地说:我正在实现一个 API,并希望使用 OAuth 1.0a 来保护它。未来可能会有很多不同的 API 客户端,但目前唯一一个不需要敏感的用户数据,所以我计划使用“2-legged” OAuth。
据我了解,这意味着我为每个 API 客户端生成一个使用者密钥和一个共享密钥。在每个 API 请求中,客户端都提供消费者密钥和使用共享密钥生成的签名。秘密本身不是通过网络发送的,我完全理解为什么这比直接发送用户名和密码更好。
但是,据我了解,消费者和提供者都必须明确存储消费者密钥和共享密钥(如果我错了,请纠正我),这似乎是一个重大的安全风险。如果攻击者破坏了包含消费者密钥和共享机密的提供商的数据存储,那么每个 API 客户端都会受到威胁,重新保护系统安全的唯一方法是撤销每个密钥。这与密码形成对比,密码(理想情况下)从不以可逆方式存储在服务器上。如果您对密码进行加盐和散列处理,那么攻击者将无法通过破坏您的数据库来侵入任何帐户。
我所做的所有研究似乎只是通过说“像使用任何敏感数据一样保护凭据”来掩盖这个问题,但这似乎很荒谬。确实会发生违规行为,虽然它们可能会暴露敏感数据,但它们不应该让攻击者冒充用户,对吗?
oauth-2.0 - 两条腿的 oauth2.0 有/支持回调授权吗?
在三足流程中,您有一个 callbackAuthorize 允许您检索代码,您可以用它交换访问令牌。我想知道两条腿的 oauth 是否有类似的东西(它会用您的身份验证令牌回叫您),或者您是否只是提供了您的 client_id + client_secret 的授权 URL 并且响应是您的身份验证令牌?
django - 如何将 3-legged OAuth 系统与 2-legged OAuth 系统集成
我有一个系统使用带有 2-leged OAuth 的用户帐户提供主要服务。我还有另一个系统提供 API 服务来调用,但它使用 3-legged OAuth 进行身份验证。目前,2个系统拥有独立的用户群。现在我想保留主系统用户群并将API系统调用集成到主系统,一些如何删除API系统中的用户群(我的意思是保留它但不再使用它)。
用户案例如下:
- 主系统用户注册账号(一)
- 在 API 系统上自动创建了另一个帐户 (2)
- 每当主系统需要从 API 系统获取/保存信息(CRUD 任务)时,它将使用 (2) 中自动创建的用户信息执行 3-legged OAuth,以对 API 系统进行身份验证并执行各自的任务。(3)
实现这样的集成的选项是什么?我不想更改两个系统的代码库,不从主系统或 API 系统中完全删除 OAuth 是不可能的。两个系统都使用 Python Django 框架。
oauth - Google GData Java 2-legged OAuth 签名验证失败
我的消费者代码如下,
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
而我的 OAuth 服务器端代码如下,
以上签名验证失败,我不知道出了什么问题。请帮忙。
oauth - google Drive api 是否支持 2 legged oauth?
现在,我们有了一个带有 Google Docs Api 和 2 legged oauth 的应用程序。但是,我们想迁移到使用 Oauth 2.0 的 Google Drive Api。
我们可以在 Google Drive Api 中使用 2 legged oauth 吗?有什么例子吗?
java - MasterCard API - 添加证书以请求后出错
MasterCard 使用 2-legged OAuth。准备好 OAuth 有效负载后,我将其添加到授权密钥的标题中。然后请求需要与证书一起发送。我在这一步遇到错误。
我已经根据https://developer.mastercard.com/portal/display/api/Locations+-+Sample+Code上提供的示例代码编写了我的代码
和示例密钥可在 https://developer.mastercard.com/portal/display/api/OAuth+Validation获得,
我生成 SSL 证书的步骤:
keytool -import -alias openapi-samplecode-ssl-cert -file openapi-sandbox.pem -keystore openapi-samplecode.jks
准备请求的代码
以及处理证书文件的功能
在此先感谢您的时间。:)
错误信息
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 在 sun.security.ssl.SSLSocketImpl.fatal(Unknown Source) 在 sun.security.ssl.Alerts.getSSLException(Unknown Source) 在 sun 上找不到受信任的证书.security.ssl.Handshaker.fatalSE(Unknown Source) at sun.security.ssl.Handshaker.fatalSE(Unknown Source) at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source) at sun.security.ssl.ClientHandshaker.processMessage (未知来源)sun.security.ssl.Handshaker.processLoop(未知来源)sun.security.ssl.Handshaker.process_record(未知来源)sun.security.ssl.SSLSocketImpl.readRecord(未知来源)sun.security .ssl.SSLSocketImpl.performInitialHandshake(未知来源)在 sun.security.ssl.SSLSocketImpl。sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection 的 startHandshake(Unknown Source)。 connect(Unknown Source) at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source) at mypack.MasterCardDemo.createOpenAPIConnection(MasterCardDemo.java:183) at mypack.MasterCardDemo.main(MasterCardDemo.java:64)由:sun.security.validator.ValidatorException:在 sun.security.validator.SimpleValidator.engineValidate(Unknown Source) 在 sun.security.validator.Validator 的 sun.security.validator.SimpleValidator.buildTrustedChain(Unknown Source) 找不到受信任的证书sun.security.ssl 上的 .validate(Unknown Source)。Sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source) 在 sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source) X509TrustManagerImpl.checkServerTrusted(Unknown Source)