我正在实施OAuth2提供商,我希望在我的网站的某个地方开发人员登录并注册第三方应用。但我对如何生成应用程序的客户端标识符和客户端密钥有疑问。它们应该是唯一的随机代码,还是必须向客户提供一些有意义的信息?我想他们可能是随机的。
好吧,我一直在寻找有关如何做到这一点的最佳做法,但没有找到那么多。所以任何答案都将受到赞赏。
PD:我在.NET MVC3上开发了一个名为DotNetOpenAuth的库。
答案 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 - 表示注册的唯一字符串 客户提供的信息。