1) Это действительно зависит от вас.Я видел, что это было сделано совершенно по-разному в разных API, с которыми я работал.Некоторые ключи очень похожи на GUID, другие - просто случайные строки, но важно то, что они уникальны и их трудно угадать.От того, как вы храните их в базе данных, сколько усилий вы приложите для защиты своих данных, зависит уровень чувствительности учетных записей пользователей.Если характер предоставляемых вами услуг является строго конфиденциальным и / или вы можете в конечном итоге пройти аудит, то вам следует принять все необходимые меры для защиты данных (используя односторонний хэш и засолку).Моя личная философия заключается в том, чтобы сделать вещи максимально простыми, пока нет причин вносить дополнительную сложность, но я работал над сайтами, которые использовали одностороннее хеширование с солями для аутентификации.
2) Это зависит от того, ктособираюсь использовать ваш сервис.Вы можете использовать встроенный поставщик членства для проверки подлинности ASP.NET Forms и даже интегрировать его с общедоступным веб-сайтом, но это ограничит использование вашего API разработчиками, использующими платформу, поддерживающую файлы cookie в HttpProxies, и усложнит работу вашего API.следить.В большинстве сервисов с поддержкой REST, с которыми я сталкивался, использовалась комбинация базовой аутентификации и SSL, которая обеспечит самый широкий спектр поддержки для разработчиков, но будет сложнее реализовать на вашей стороне.На стороне сервера вам нужно будет захватывать учетные данные пользователей из заголовков HTTP и проверять их подлинность в вашей пользовательской базе данных.