Ответ 1
Как раздел 2.2 Отладочной платформы OAuth 2.0 говорит:
Сервер авторизации выдает зарегистрированному клиенту клиент идентификатор - уникальная строка, представляющая регистрацию информация, предоставленная клиентом. Идентификатор клиента не является секрет; он предоставляется владельцу ресурса и НЕ ДОЛЖЕН использоваться для проверки подлинности клиента. Идентификатор клиента уникален для сервер авторизации.
Размер строки идентификатора клиента остается undefined этим Спецификация. Клиент должен избегать предположений о размер идентификатора. Сервер авторизации ДОЛЖЕН документировать размер любого его идентификатора.
Таким образом, вы можете определить идентификатор клиента самостоятельно. Это зависит от вашего выбора. Вы можете использовать System.Guid
для генерации одного просто или использовать uid + systemTime, также вы можете Хешировать его, зашифровывать или что угодно, что хотите.
Но секрет клиента должен быть криптографически сильной случайной строкой. Вы можете создать такой файл:
RandomNumberGenerator cryptoRandomDataGenerator = new RNGCryptoServiceProvider();
byte[] buffer = new byte[length];
cryptoRandomDataGenerator.GetBytes(buffer);
string uniq = Convert.ToBase64String(buffer);
return uniq;
Также вы можете использовать криптографические хеш-функции() для хэша UUID + SystemTime + somthingelse, чтобы реализовать его самостоятельно.
Если вы хотите узнать больше о практиках, вы можете обратиться к от нескольких открытых реализаций отсюда.