Результаты поиска :

×

JWT-аутентификация для WordPress REST API

JWT-аутентификация для WordPress REST API JWT-аутентификация WordPress — это простой способ обеспечить безопасность и защиту конечных точек REST API. Вместо отправки имен пользователей и паролей каждый раз, аутентификация WordPress с помощью JWT использует защищенный токен для проверки того, кто отправляет запрос. Это помогает гарантировать, что доступ к защищенным конечным точкам REST API имеют только авторизованные пользователи или приложения. JWT-токен генерируется с использованием Учетные данные пользователя WordPress и имеет высокий уровень шифрования, что обеспечивает надежную защиту без ущерба для доступа.



Аутентификация через REST API WordPress

Плагин аутентификации REST API для WordPress обеспечивает защиту от несанкционированного доступа к вашим REST API WordPress. Наш плагин предоставляет несколько методов аутентификации, таких как базовая аутентификация, аутентификация по ключу API, аутентификация OAuth 2.0 и аутентификация JWT.

Узнать больше   

Что такое JWT-аутентификация в WordPress?

JWT-аутентификация для WordPress REST API JWT-аутентификация WordPress — это простой способ обеспечить безопасность и защиту конечных точек REST API. Вместо отправки имен пользователей и паролей каждый раз, аутентификация WordPress с помощью JWT использует защищенный токен для проверки того, кто отправляет запрос. Это помогает гарантировать, что доступ к защищенным конечным точкам REST API имеют только авторизованные пользователи или приложения. JWT-токен генерируется с использованием Учетные данные пользователя WordPress и имеет высокий уровень шифрования, что обеспечивает надежную защиту без ущерба для доступа.

  • Войдите на свой сайт WordPress как администратор.
  • В панели управления WordPress перейдите в раздел «Плагины» и нажмите «Добавить новый».
  • Поиск для Аутентификация REST API для WordPress.
  • Нажмите «Установить сейчас», чтобы добавить плагин на свой сайт.
  • После установки нажмите кнопку «Активировать», чтобы начать использовать плагин.


Если вы разрабатываете мобильное или веб-приложение и вам необходим контролируемый доступ к REST API WordPress, JWT-аутентификация для REST API WordPress Предлагает безопасное решение. С помощью аутентификации WordPress JWT вы можете определить уровни доступа, чтобы пользователи с определенными возможностями могли создавать или обновлять контент, в то время как другие были ограничены только просмотром данных.

  • . аутентификация на основе JWT-токеновREST API-интерфейсы защищены токенами доступа WP JWT, сгенерированными на основе действительных учетных данных пользователей WordPress. Включив токен JWT в заголовок Authorization, ваше приложение может безопасно получать доступ к защищенным ресурсам или выполнять действия на основе ролей. JWT-аутентификация для REST API WordPress.
  • Эти токены защищены с помощью алгоритмов шифрования, таких как HSA или RSA, и автоматически истекают через определенный период, что повышает общую безопасность. Каждый токен содержит информацию о пользователе WordPress, которую можно расшифровать с помощью секретного ключа или сертификата, что делает аутентификацию WordPress с помощью JWT идеальной для синхронизации пользователей или создания учетных записей в нескольких системах.
  • WP JWT Refresh Tokens Это позволяет пользователям безопасно продлевать свои сессии без необходимости повторного входа в систему. В целом, аутентификация на основе JWT-токенов в сочетании с аутентификацией JWT в WordPress обеспечивает безопасный доступ к API, а также бесперебойную и эффективную связь между вашим приложением и WordPress.

  • Защита REST API WordPress с помощью аутентификации JWT
  • Метод аутентификации REST API WordPress с использованием JWT.

    1. Инициируется запрос к REST API WordPress с необходимыми учетными данными и параметрами для генерации JWT-токена с использованием аутентификации JWT в WordPress. Выданный токен защищен аутентификацией на основе JWT-токенов и зашифрован с использованием стандартных отраслевых алгоритмов, таких как... HS256 or RSA для обеспечения надежной защиты данных.

    2. Для последующих запросов вызов REST API WordPress для получения данных или выполнения действий включает токен JWT. Заголовок авторизации в виде токена Bearer.При использовании аутентификации JWT для WP REST API плагин проверяет токен перед обработкой запроса. Если токен действителен, предоставляется доступ к запрошенному ресурсу; в противном случае возвращается сообщение об ошибке. В этом процессе плагин аутентификации JWT для WordPress обрабатывает как создание, так и проверку токенов, обеспечивая безопасность каждого запроса к API.



Схожий пример использования:

  • Как отправлять запросы к REST API WordPress с аутентификацией JWT?
  • Аутентификация REST API Woocommerce/WordPress с использованием JWT (JSON Web Token).



  • В плагине перейдите в Настроить методы вкладка в левой части.
  • Нажмите на Аутентификация JWT в качестве метода аутентификации API.
  • Метод аутентификации JWT в REST API WordPress
  • Выберите Тип генерации токенов , По умолчанию HS256 Для этого используются алгоритм и случайно сгенерированный уникальный секретный ключ, а затем кликают. Следующая в правом верхнем углу.
  • Для проверки функциональности заполните форму. Имя пользователя и Пароль поля для существующего пользователя.
  • Метод аутентификации JWT в REST API WordPress
  • Нажмите на Получить токен В ответе будет отображен JWT-токен (jwt_token), значение которого вы можете скопировать в буфер обмена для выполнения GET-запроса.
  • Вставьте JWT-токен, полученный на шаге 6.
  • Нажмите Тестовая конфигурация и ответ будет отображен на экране.
  • Нажмите Завершить .
  • Метод аутентификации JWT в REST API WordPress
  • В плагине перейдите в Настройка аутентификации API и нажмите Аутентификация JWT в качестве метода аутентификации API.
  • Выберите Алгоритм подписания и Секрет клиентаПо умолчанию используется алгоритм HS256 и случайно сгенерированный секретный ключ.
  • В конце, нажмите Сохранить конфигурацию Таким образом, будет включена аутентификация JWT для аутентификации REST API WordPress.
  • Метод аутентификации REST API WordPress с использованием JWT.
  • В этом случае вам потребуется выполнить два вызова API:

  • Для получения JWT-токена вам потребуется выполнить вызов REST API к конечной точке Token, как показано ниже:
  • Request:POST https://<domain-name>/wp-json/api/v1/token
      Body:username = <wordpress username>
      password = <wordpress password>
    
      Sample curl Request Format-
      curl -d "username=<wordpress_username>&password=<wordpress_password>"
      -X POST http://<wp_base_url>/wp-json/api/v1/token
      

    Этот API-интерфейс также называется аутентификация пользователя API или конечная точка API для входа в WordPress Таким образом, если мы отправим запрос к этой конечной точке, используя учетные данные пользователя WordPress, и если эти данные действительны, в ответ будет отправлен JWT-токен, в противном случае будет отображено сообщение об ошибке.

  • Попробуйте Ответ об ошибке для получения JWT-токена.
  • Получив JWT-токен, вы можете использовать его для запроса доступа к REST API WordPress, как показано ниже:
  • Request: GET  https://<domain-name>/wp-json/wp/v2/posts
      Header: Authorization : Bearer <JWT token>
    
      Sample curl Request Format-
      curl -H "Authorization:Bearer <jwt_token >"
      -X GET http://<wp_base_url>/wp-json/wp/v2/posts
      
  • ПРИМЕЧАНИЕ: Указанный выше токен по умолчанию действителен в течение 1 часа, но его также можно настроить. После истечения срока действия токен можно сгенерировать заново.
  • Попробуйте документация для разработчиков Больше подробностей.
  • Попробуйте Ответ об ошибке для создания API с использованием JWT-токенов.

Поздравляем! Вы успешно настроили метод аутентификации JWT для вызовов REST API, используя метод аутентификации REST API miniOrange WordPress.


 
  var client = new RestClient("http://<wp_base_url>/wp-json/wp/v2/posts ");
  client.Timeout = -1;
  var request = new RestRequest(Method.GET);
  request.AddHeader("Authorization", "Bearer < jwt_token >");    
  IRestResponse response = client.Execute(request);
  Console.WriteLine(response.Content);
  
 
  OkHttpClient client  = new OkHttpClient().newBuilder().build();
  Request request  = new Request.Builder()
  .url("http://<wp_base_url>/wp-json/wp/v2/posts ")
  .method("GET", null)
  .addHeader = ("Authorization", "Bearer < jwt_token >")    
   .build();
  Response response= client.newCall(request).execute();
          
 
  var settings  = {
      "url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
      "method": "GET",
      "timeout": 0,
      "headers": {
          "Authorization": "Bearer < jwt_token >"
        },        
    };
    
    $.ajax(settings).done(function (response)  {
      console.log(response);
    });
    
 
  <?php
   $curl = curl_init();
  curl_setopt_array($curl, array 
      (  
          CURLOPT_URL => 'http://%3Cwp_base_url%3E/wp-json/wp/v2/posts%20',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'GET',
          CURLOPT_HTTPHEADER => array(
            'Authorization: Bearer < jwt_token >'
          ),
          ));          
        
  $response = curl_exec($curl);
  curl_close($curl);    
  echo $response;
          
 
  import http.client
  
  conn = http.client.HTTPSConnection("<wp_base_url>")
  payload= "
  headers = {
      'Authorization': 'Bearer < jwt_token >'
  }
  conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)
  res= conn.getresponse()    
  data = res.read()    
  print (data.decode("utf-8"))   
  
 
  var client = new RestClient("http://<wp_base_url>/wp-json/api/v1/token ");
  client.Timeout = -1;
  var request = new RestRequest(Method.POST);
  request.AlwaysMultipartFormData = true;
  request.AddParameter("username", "<wordpress_username>");    
  request.AddParameter("password", "<wordpress_password>");    
  IRestResponse response = client.Execute(request);
  Console.WriteLine(response.Content);
  
 
  OkHttpClient client  = new OkHttpClient().newBuilder().build();
  MediaType mediaType = MediaType.parse("text/plain");
  RequestBody body  = new MultipartBody.Builder().setType(MultipartBody.FORM)
  .addFormDataPart("username", "<wordpress_username>"); 
  .addFormDataPart("password", "<wordpress_password>"); 
  .build();
  Request request  = new Request.Builder()
  .url("http://<wp_base_url>/wp-json/api/v1/token ")
  .method("POST", body)
   .build();
  Response responseclient.newCall(request).execute();
        
 
  var form = new FormData();
  form.append("username", "<wordpress_username>");
  form.append("password", "<wordpress_password>");  
  
  var settings  = {
      "url": "http://<wp_base_url>/wp-json/api/v1/token ",
      "method": "POST",
      "timeout": 0,
      "processData": false,
      "mimeType": "multipart/form-data",
      "contentType": false,
      "data": form
      };
      
      $.ajax(settings).done(function (response)  {
      console.log(response);
      });
      
 
  <?php
   $curl = curl_init();
  curl_setopt_array($curl, array 
      ( 
          CURLOPT_URL => 'http://%3Cwp_base_url%3E/wp-json/api/v1/token%20',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'POST',
          CURLOPT_POSTFIELDS => array('username' => '<wordpress_username>','password' => '<wordpress_password>'),
          ));
          
  $response = curl_exec($curl);
  curl_close($curl);    
  echo $response;
        
 
  import http.client
  import mimetypes
  from codecs import encode
      
  conn   = http.client.HTTPSConnection("<wp_base_url>")
  dataList= []
  boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
  dataList.append(encode('--' + boundary))
  dataList.append(encode('Content-Disposition: form-data; name=username;'))
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))    
  dataList.append(encode(''))    
  
  dataList.append(encode("<wordpress_username>"))    
  
  dataList.append(encode('--' + boundary))
  dataList.append(encode('Content-Disposition: form-data; name=password;'))    
  
  dataList.append(encode('Content-Type: {}'.format('text/plain')))    
  dataList.append(encode(''))    
  
  dataList.append(encode("<wordpress_password>"))    
  dataList.append(encode('--'+boundary+'--'))
  dataList.append(encode(''))
  body  = b'\r\n'.join(dataList)    
  payload= body
  headers = {
    'Content-type': 'multipart/form-data; boundary={}'.format(boundary) 
  }
  conn.request("POST", "/wp-json/api/v1/token", payload, headers)
  res= conn.getresponse()    
  data = res.read()    
  print (data.decode("utf-8"))   
  

    Выполните следующие шаги, чтобы отправить запрос к REST API с помощью Postman:

  • Нажмите на Образцы почтальона вкладка в плагине.
  • Метод аутентификации JWT для REST API WordPress, реализованный в Postman.
  • A Файл JSON будет загружено автоматически.
  • Метод аутентификации JWT через REST API WordPress, файл JSON в Postman.
  • Импортируйте загруженный файл Файл JSON в приложение Postman, как показано ниже.
    • После импорта JSON-файла нажмите на кнопку «Запрос REST API» в разделе... Коллекции как показано на последнем рисунке. Замените с вашим доменом WordPress в http://<wp_base_url>/wp-json/wp/v2/posts и заменить с именем пользователя WordPress и с паролем WordPress в параметрах тела сообщения.
    • Метод аутентификации WordPress REST JWT: замените базовый URL в Postman.
    • Пример
    • Пример замены базового URL-адреса в Postman для аутентификации REST JWT в WordPress
    • ПРИМЕЧАНИЕ: Скопируйте JWT-токен, полученный из ответа. Он будет использоваться в запросах к API ресурсов для аутентификации.
    • После импорта JSON-файла нажмите на кнопку «Запрос REST API» в разделе... Коллекции как показано на последнем рисунке. Замените с вашим доменом WordPress в http://<wp_base_url>/wp-json/wp/v2/posts и заменить с использованием JWT-токена, скопированного из ответа, полученного после запроса токена.
    • Метод аутентификации WordPress REST JWT. Postman: заменить базовый URL на фактический ресурс.
    • Пример
    • Метод аутентификации WordPress REST API JWT. Postman: заменить URL на фактический ресурс.

1. Ограничение REST API на основе ролей:


Эта функция ограничивает доступ к REST API WordPress на основе следующих критериев: роли пользователейВы можете добавить в список разрешенных ролей определенные роли, которым разрешен доступ к определенным ресурсам REST API. Когда отправляется запрос REST API, Проверяется роль пользователя.Доступ предоставляется только в том случае, если роль находится в списке разрешенных.


Как настроить ограничение доступа к REST API на основе ролей в WordPress?

  • Перейдите на вкладку «Расширенные настройки» плагина.
  • В разделе «Ограничения на основе ролей» по умолчанию доступ к API разрешен для всех ролей.
  • Установите флажок рядом с ролями, которым вы хотите ограничить доступ к API.
  • Метод базовой аутентификации REST API WordPress, реализованный в Postman.
  • На скриншоте выше флажок роли подписчика включен. Поэтому, если пользователь, имеющий роль подписчика, отправляет API-запрос, ему будет отказано в доступе к запрошенному ресурсу.

Примечание: Функция ограничения доступа на основе ролей действительна для базовой аутентификации (Имя пользователя: пароль), метода JWT и OAuth 2.0 (предоставление доступа по паролю).


2. Пользовательский заголовок:


Функция «Пользовательский заголовок» позволяет использовать настраиваемый заголовок вместо стандартного заголовка «Авторизация». Это добавляет дополнительный уровень безопасности Поскольку REST API принимает запросы только с заданным вами пользовательским именем заголовка. Если кто-то попытается отправить запрос, используя заголовок «Authorization» по умолчанию, доступ будет запрещен.


Как настроить пользовательский заголовок для аутентификации через REST API WordPress?

  • Перейдите на вкладку «Расширенные настройки» плагина.
  • В разделе «Пользовательский заголовок» введите желаемое название заголовка в текстовое поле.
  • Сохраните изменения, чтобы применить новый пользовательский заголовок к запросам API.
  • Метод базовой аутентификации REST API WordPress, реализованный в Postman.

3. Исключите REST API:


Функция «Исключить REST API» позволяет разрешить доступ к определенным REST API. Конечные точки REST API к доступу без аутентификацииЭти исключенные API становятся общедоступной, что делает их доступными без необходимости ввода токена или авторизации.


Как настроить исключение REST API при аутентификации JWT?

  • Перейдите на вкладку «Расширенные настройки» плагина.
  • В разделе «Исключить REST API» введите конечные точки вашего API в требуемом формате.
  • Введенные API-интерфейсы будут исключены из процесса аутентификации и станут доступны для публичного доступа.
  • Метод базовой аутентификации REST API WordPress, реализованный в Postman.
  • Пример: Предположим, вы хотите исключить REST API ' ' Затем вам нужно ввести '/wp-json/wp/v2/posts' в текстовое поле.

4. Срок действия пользовательского токена:


Функция пользовательского срока действия токена работает с JWT и OAuth 2.0 методы аутентификации, позволяющие вам установить пользовательские сроки истечения для токенов, используемых для доступа к конечным точкам REST API WordPress. По истечении заданного времени токен автоматически становится недействительныйповышая безопасность и предоставляя вам контроль над продолжительностью доступа.

Как установить пользовательский срок действия токена в аутентификации JWT?

  • Перейдите на вкладку «Расширенные настройки» плагина.
  • Откройте раздел «Настройка срока действия токена».
  • Настройте время истечения срока действия токена доступа (по умолчанию: 60 минут).
  • (Для OAuth 2.0) Настройте время истечения срока действия токена обновления (по умолчанию: 14 дней).
  • Сохраните изменения, чтобы применить пользовательские настройки срока действия токена.
  • Метод базовой аутентификации REST API WordPress, реализованный в Postman.

5. Проверка подписи для токенов на основе JWT:


Функция проверки подписи обеспечивает безопасную подпись. JWT-токены для защиты аутентификации REST API WordPress. Подпись каждого токена может быть проверена только с помощью секрет клиента или сертификатгарантируя, что подпись останется конфиденциально и безопасно и не могут быть доступны или изменены неавторизованными пользователями.

Метод базовой аутентификации REST API WordPress, реализованный в Postman.

Как настроить проверку JWT-подписи с использованием HS256 или RS256?

Плагин поддерживает два алгоритма подписи для JWT-токенов: HS256 и RS256Вы можете выбрать любой из алгоритмов из выпадающего меню. Для завершения проверки подписи добавьте свой секрет клиента или сертификаткоторый используется для безопасного подписания JWT-подписи и обеспечения подлинность токена.

6. Токен обновления


Обновить токен Это долгосрочный токен, используемый для получения нового токена доступа без необходимости повторного входа пользователя в систему. Эта функция имеет решающее значение для поддержания работоспособности системы. сессия пользователя когда истекает срок действия токена доступа. Токены доступа обычно имеют короткая продолжительность жизни (например, от 15 минут до 1 часа) по соображениям безопасности, но токены обновления рассчитаны на более длительный срок действия (дни, недели или даже месяцы).

7. Отозвать токен


Отзыв токена Это означает аннулирование его до истечения срока действия. Эта функция имеет решающее значение для безопасностьособенно в таких случаях, как:

  • Пользователь выходит из своей сессии.
  • Пользователь меняет свой пароль.
  • Токен скомпрометирован (украден или произошла утечка).
  • Администраторы хотят принудительно вывести пользователей из системы или аннулировать их токены (например, после нарушения безопасности).


JWT обеспечивает безопасность, используя аутентификацию на основе JWT-токенов для проверки каждого запроса без повторной отправки имен пользователей и паролей. В аутентификации JWT для WP REST API токен подписывается цифровой подписью (HS256) или закрытым ключом (RSA), поэтому его невозможно изменить без обнаружения. Токены также истекают через установленное время, что снижает риск в случае утечки токена. Это делает аутентификацию JWT в WordPress безопасным способом защиты конечных точек REST API WordPress.

Необходимо добавить токен в заголовки запроса, используя заголовок Authorization в качестве токена Bearer. Это стандартный подход в аутентификации JWT для REST API WordPress и является основой аутентификации на основе токенов JWT. Например:
Authorization: Bearer YOUR_JWT_TOKEN

Когда срок действия токена доступа истекает, API возвращает ошибку авторизации (обычно 401). При использовании аутентификации WordPress с помощью JWT вы можете использовать токен обновления (WP JWT refresh token) для запроса нового токена доступа без повторного входа в систему. Этот процесс является ключевым преимуществом аутентификации на основе токенов JWT, обеспечивая безопасность сессий и удобство использования JWT-аутентификации для REST API WordPress.

Да. Плагин поддерживает как подписание токенов с использованием HS256, так и RSA, в зависимости от конфигурации. HS256 использует общий секрет, а RSA — пару открытого/закрытого ключей. Такая гибкость повышает безопасность аутентификации на основе JWT-токенов и соответствует различным требованиям безопасности для аутентификации JWT в WordPress REST API.

Проверить аутентификацию WordPress с помощью JWT можно в два простых шага:

  • Сгенерируйте токен: используйте конечную точку для получения токенов плагина с действительными учетными данными WordPress и подтвердите получение JWT. curl -d" username=& пароль ="-X POST http:///wp-json/api/v1/token
  • Вызов защищенной конечной точки REST API: Отправьте запрос к защищенной конечной точке, используя следующий синтаксис:
    Authorization: Bearer YOUR_JWT_TOKEN




Получите полнофункциональную пробную версию



 Спасибо за ваш ответ. Мы свяжемся с вами в ближайшее время.

Что-то пошло не так. Пожалуйста, отправьте запрос ещё раз.

Интеграция внешних/сторонних REST API-интерфейсов

Нужна помощь?

Пишите нам apisupport@xecurify.com Для получения оперативной консультации (по электронной почте/на встрече) по вашим требованиям, наша команда поможет вам выбрать наиболее подходящее решение/план в соответствии с вашими потребностями.


ADFS_sso ×
Привет!

Нужна помощь? Мы здесь!

поддержка