
Если вы пытаетесь получить доступ к URL-адресу REST и в ответ получаете 401 неавторизованный доступ, то нам необходимо отправить заголовок авторизации в запросе.
Существует множество способов авторизации запроса REST. В этой статье мы рассмотрим Что такое некоторые основные схемы авторизации, плюсы и минусы и способы их использования.
Важно: всегда используйте API, которым требуется авторизация через HTTP, чтобы между клиентом и сервером всегда был безопасный зашифрованный канал, и кто-то, отслеживающий ваш запрос между ними, не мог извлечь эту конфиденциальную информацию.
Базовая аутентификация
Его можно считать самой простой формой авторизации. Вам необходимо передать учетные данные пользователя в кодировке base64 в заголовках запросов.
Authorization: base64(<Username>:<Password>)
Это совсем не рекомендуемый способ авторизации, особенно на стороне клиента. По незащищенному HTTP-каналу ваше имя пользователя и пароль могут быть легко извлечены, что приведет к компрометации вашей всей учетной записи.
Для сторонних API данные учетной записи (имя пользователя и пароль) подвергаются компрометации, если вызов выполняется на стороне клиента.
Пример: предположим, что у вас есть приложение «A-app» и вы используете API другой службы «B-service». Теперь у вас есть платная учетная запись для использования B-сервиса, а авторизация для REST API, предоставляемая этой платформой, является базовой аутентификацией.
Теперь, если вы совершаете прямые вызовы B-сервиса из B-сервиса strong>интерфейс A-app, то заголовок авторизации становится общедоступным, и ваша учетная запись для B-service может быть скомпрометирована.
ключи API
Ключи API также используются для авторизации приложений для использования сторонних сервисов, таких как, например, карты Google. Вместо пользователя ключ API представляет приложение.
Ключ API можно передать в виде заголовка клиента (x-api-key), параметра запроса или даже в заголовке авторизации (базовый ‹ключ API›)
Ключи API можно использовать только для авторизации приложений, а не пользователей. Также вам необходимо ограничить использование ключа API некоторыми доменами, так как в противном случае его можно легко получить из инструментов разработки браузера и использовать не по назначению.
Аутентификация носителя
Аутентификация носителя использует токен, выданный сервером, и действует недолго. Этот токен обычно представляет собой JWT, срок действия которого истекает через определенный период времени, что делает его более безопасным, чем ключи Basic Auth и API.
Authorization: Bearer <token>
Поскольку эти токены недолговечны, они доставляют неудобства пользователям, которые просят их снова войти в систему после истечения срока действия токена, чтобы получить новый токен.
Это снижает удобство работы пользователей.
Чтобы смягчить это, используются токены обновления. Сервер авторизации отправляет токен обновления вместе с токеном носителя. Токен Resfresh можно использовать в любое время, чтобы получить новый токен на предъявителя. Поскольку токен обновления действителен в течение длительного времени, он снижает безопасность токенов-носителей, но обеспечивает лучший пользовательский интерфейс.
Популярные рабочие процессы аутентификации на основе OAuth также предоставляют токены носителя.
И это все для этой статьи.