ПО КЛЮЧАМ ДОСТУПА
Используется чаще всего для аутентификации устройств, сервисов или других приложений при обращении к веб-вервисам.
В качетсве секрета применяются ключи доступа (access key, API key) - длинные уникальные строки, содержащие произвольный набор символов, по сути заменяющие собой комбинацию username/password.
Сервер генерирует ключи доступа по запросу пользователей, которые далее сохраняют эти ключи в клиентский приложениях. При создании ключа также возможно ограничить срок действия и уровень доступа, которое получит клиентское приложение при аутентификации с помощью этого ключа.
Позволяет избежать передачи пароля пользователя сторонним приложениям. Ключи обладают значительно большей энтропией по сравнению с паролями, поэтому их практически невозможно подобрать. Кроме того, если ключ был раскрыт, это не приводит к компрометации основной уч.записи пользователя - достаточно лишь аннулировать этот ключ и создать новый.
С технической точки зрения, здесь не существует единого протокола: ключи могут передаваться в разных частях HTTP-запроса: URL-query, request body или HTTP-header (оптимально). В некоторых случаях используют HTTP-схему Bearer для передаче токена в заголовке (Authorization: Bearer[token])
Чтобы избежать перехвата ключей, соединение с сервером д.б защищено протоколом SSL/TLS
Существуют более сложные схемы аутентификации по ключам для незащищенных соединений. Ключ обычно состоит из двух частей: публичной и секретной.
Публичная - для идентификации клиента
Секретная - позволяет сгенерировать подпись