如何生成OAuth客户端标识符和客户端密钥?

时间:2012-01-20 20:25:14

标签: c# asp.net-mvc-3 dotnetopenauth oauth-2.0

我正在实施OAuth2提供商,我希望在我的网站的某个地方开发人员登录并注册第三方应用。但我对如何生成应用程序的客户端标识符和客户端密钥有疑问。它们应该是唯一的随机代码,还是必须向客户提供一些有意义的信息?我想他们可能是随机的。

好吧,我一直在寻找有关如何做到这一点的最佳做法,但没有找到那么多。所以任何答案都将受到赞赏。

PD:我在.NET MVC3上开发了一个名为DotNetOpenAuth的库。

2 个答案:

答案 0 :(得分:15)

客户端标识符可以是您想要的任何内容。它可以是他们的选择或任何随机字符串。

客户端密钥应该是加密强大的随机字符串。以下是如何生成一个:

RandomNumberGenerator cryptoRandomDataGenerator = new RNGCryptoServiceProvider();
byte[] buffer = new byte[length];
cryptoRandomDataGenerator.GetBytes(buffer);
string uniq = Convert.ToBase64String(buffer);
return uniq;

答案 1 :(得分:2)

规范并不清楚你应该如何生成它们,但他们说你应该是随机字符串并且是唯一的。

section #2.2中,关于客户标识符:

  

授权服务器向注册客户端发出客户端      identifier - 表示注册的唯一字符串      客户提供的信息。