как сгенерировать идентификатор клиента OAuth и секрет клиента? - PullRequest
8 голосов
/ 21 января 2012

Я реализую OAuth2-провайдера, и мне бы хотелось, чтобы где-то на моем веб-сайте была область, где разработчики входят в систему и регистрируют сторонние приложения.Но я сомневаюсь, как сгенерировать идентификатор клиента приложения и его секрет.Должны ли они быть уникальными случайными кодами или иметь какую-то значимую информацию для клиента?Я предполагаю, что они могут быть случайными.

Ну, я искал лучшие методы, как это сделать, но не нашел так много.Поэтому любые ответы будут оценены.

PD: Я занимаюсь разработкой на .NET MVC3 с библиотекой DotNetOpenAuth.

Ответы [ 2 ]

15 голосов
/ 21 января 2012

Идентификатор клиента может быть любым.Это может быть их выбор или любая случайная строка.

Секрет клиента должен быть случайной криптографической стойкой строкойВот как вы можете сгенерировать один:

RandomNumberGenerator cryptoRandomDataGenerator = new RNGCryptoServiceProvider();
byte[] buffer = new byte[length];
cryptoRandomDataGenerator.GetBytes(buffer);
string uniq = Convert.ToBase64String(buffer);
return uniq;
2 голосов
/ 21 января 2012

В спецификациях не ясно, как вы должны их генерировать, но они говорят, что вы должны быть случайными и уникальными строками.

В разделе # 2.2 об идентификаторе клиента:

Сервер авторизации выдает зарегистрированному клиенту идентификатор клиента - уникальную строку, представляющую регистрационную информацию, предоставленную клиентом.

...