即使使用有效的令牌凭据,桌面应用中也需要OAuth客户端凭据(密钥+密钥)

时间:2011-04-11 13:15:21

标签: c# wpf oauth dotnetopenauth

我的印象是,一旦授权过程完成,访问令牌和机密(令牌凭证)就是使用目标资源所需的全部内容。根据这句引文[in some cases, the client credentials cannot be trusted and can only be used for informational purposes only, such as in desktop application clients],情况可能并非如此。我遇到了一个问题,即使在授权之后,仍然需要使用消费者密钥和秘密(客户端凭证)来访问资源。这似乎不对。

我在桌面应用程序中实现了OAuth,以查看DotNetOpenAuth个样本。我基本上使用了一个未更改的InMemoryTokenManager和一个DesktopConsumer,一旦授权,它们都可以完美运行。当我重新启动应用程序并重用已保存的令牌凭据时,应用程序无法访问该资源。如果我使用保存的令牌凭据+客户端凭据,则可以正常访问资源。这是设计的吗?听起来不对,但我不是专家。

1 个答案:

答案 0 :(得分:1)

这是对的。根据OAuth 1.0规范,每次使用访问令牌时都需要客户端凭据。这可以防止泄漏的访问令牌被其他客户端利用。这种推理主要假设客户端秘密实际上是一个秘密,正如您指出的那样,对于桌面应用程序而言,这是不可能的。尽管如此,你可以拥有一个不是秘密的“秘密”,并在应用程序的启动过程中保持这个秘密,只是为了让所有事情都顺利进行。