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

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

好吧,我一直在寻找有关如何做到这一点的最佳实践,但没有找到那么多。 所以任何答案都将不胜感激。

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

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

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

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

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

在#2.2节中 ,关于客户端标识符:

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