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

×

Аутентификация через REST API для WordPress с использованием стороннего поставщика.

Аутентификация REST API для WordPress с использованием сторонних поставщиков предполагает использование токенов (access-token/id-token/jwt token), полученных от сторонних поставщиков, таких как Google, Facebook, Firebase, Apple, Azure AD, Keycloak, Okta, AWS Cognito, Github, Slack, Gitlab и др., для безопасного доступа к REST API WordPress.
По умолчанию конечные точки WordPress небезопасны, и данные могут быть украдены через REST API в формате JSON. Плагин REST API Authentication for WordPress позволяет вызывать REST API с использованием нескольких методов безопасности, таких как базовая аутентификация, ключ API, токен JWT, токен OAuth. В этом руководстве мы будем использовать токен OAuth, выданный поставщиками OAuth/OpenID Connect/Firebase, для проверки запросов REST API, что обеспечит защиту и безопасность вашего веб-сайта WordPress. Каждый раз, когда будет отправлен запрос на доступ к REST API, будет выполняться аутентификация с использованием этого токена, выданного сторонними поставщиками, такими как Google, Facebook, Firebase, Apple, Okta и т. д., и на основе проверки токена API будет разрешен доступ к ресурсам, указанным в этом запросе REST API. Таким образом, единственный токен, полученный в вашем приложении после входа через SSO, может быть использован для дальнейшего доступа к конечным точкам REST API для WordPress.



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

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

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

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


  • Предположим, у вас есть мобильное приложение для Android/iOS, и вы предоставили пользователям возможность входить в систему через различные социальные сети, такие как Google, Facebook, Apple, LinkedIn, Instagram или другие провайдеры OAuth/OpenID Connect, например AWS Cognito, Auth0, Microsoft Azure, Okta, Keycloak, Firebase и т. д. Вы хотите, чтобы ваши пользователи могли получать доступ к REST API-интерфейсам WordPress из мобильного приложения. В этом случае вы можете выполнить аутентификацию доступа к REST API-интерфейсам на основе токена доступа/идентификатора (JWT-токена), полученного от провайдеров идентификации OAuth/OpenID Connect (сервера), при использовании единого входа (SSO) для входа в ваше приложение. Таким образом, токен доступа/идентификатор/JWT-токен передается в заголовок Authorization запроса API с типом токена Bearer, а проверка этого токена выполняется непосредственно через соответствующие провайдеры идентификации OAuth/OpenID Connect/Firebase. Таким образом, запрос на проверку отправляется внутри системы соответствующему серверу OAuth/OpenID Connect. Если проверка токена проходит успешно, запрос REST API приводит к доступу к ресурсам/данным, а в случае неудачи проверки возвращается сообщение об ошибке. Таким образом, ресурсы/данные могут быть защищены с помощью высочайшего уровня безопасности путем аутентификации непосредственно от поставщиков идентификации OAuth/OpenID Connect.

  • Аутентификация через REST API для WordPress с использованием стороннего метода ключа.
  • Как наш плагин может реализовать подобный сценарий аутентификации:
    • 1. Запрос к конечной точке REST API выполняется с использованием токена доступа/идентификатора, полученного от поставщиков идентификации OAuth/OpenID Connect, который передается в заголовке Authorization с типом токена Bearer.

      2. Запрос REST API для WordPress отслеживается нашим плагином, и запрос на проверку/аутентификацию JWT-токена отправляется поставщику идентификации OAuth/OpenID Connect (серверу).

      3. Ответ на ранее сделанный запрос на проверку JWT-токена возвращается от поставщика идентификации OAuth/OpenID Connect (сервера).

      4. Если проверка/аутентификация JWT-токена прошла успешно, доступ к запрошенному ресурсу разрешен, что означает, что запрашивающий теперь авторизован для доступа к ресурсу/данным. В случае неудачной проверки токена будет возвращено сообщение об ошибке. Таким образом, данные ресурса теперь защищены и доступны только после авторизации, поэтому безопасность не является проблемой.


Связанный вариант использования:

  • Как предотвратить использование JWT-токенов, предоставляемых системами авторизации через социальные сети или поставщиками идентификации OAuth2.0/OpenID Connect, для доступа к конечным точкам REST API WordPress?
  • Как выполнить аутентификацию и обеспечить безопасность или авторизацию для предоставления доступа к конечным точкам REST API WordPress на основе токена доступа/идентификатора, предоставленного поставщиками аутентификации через социальные сети/OAuth во время процесса входа в систему SSO OAuth/OpenID?




  • Выберите Метод аутентификации → Сторонний поставщик и добавить Конечная точка интроспекции Если предоставлено вашим поставщиком OAuth/OpenID Connect, нажмите на Сохранить конфигурацию.
  • Аутентификация через REST API для WordPress с использованием стороннего метода ключа.
  • После настройки плагина с использованием конечной точки интроспекции, предоставленной вашим провайдером, попробуйте получить доступ к вашим REST API для WordPress, используя токен доступа/id_token, предоставленный вашим OAuth-провайдером, как показано ниже.
  • Request: GET https://<domain-name>/wp-json/wp/v2/posts
    Header: 
    access_token : < access_token >
    OR
    id_token  : < id_token  >
    -H 'app-name:TheAppName'
    
  • Попробуйте документация для разработчиков Больше подробностей.

 
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", "< access_token > OR id_token <id_token>");
request.AddHeader = ("app-name", "TheAppName");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
 
OkHttpClient client  = new OkHttpClient().newBuilder().build();
MediaType mediaType  = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request  = new Request.Builder()
.url("http://<wp_base_url>/wp-json/wp/v2/posts ")
.method("GET", null)
 .addHeader = ("Authorization", "< access_token > OR id_token <id_token>")
.addHeader = ("app-name", "TheAppName");
 .build();
Response responseclient.newCall(request).execute();
 
var settings  = {
"url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "< access_token > OR id_token <id_token>"
"app-name": "TheAppName"
},        
};

$.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: < access_token > OR id_token <id_token>'
'app-name: TheAppName'
),

));          

$response = curl_exec($curl);
curl_close($curl);    
echo $response;
 
import http.client

conn   = http.client.HTTPSConnection("<wp_base_url>")
payload= "
headers = {
'Authorization': '< access_token > OR id_token <id_token>'
'app-name': 'TheAppName',
}
conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)
res= conn.getresponse()    
data = res.read()    
print (data.decode("utf-8"))   

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

  • Вы можете скачать пример формата запроса Postman по ссылке: здесь.
  • Распакуйте загруженный zip-файл и импортируйте распакованный json-файл в приложение Postman.
  • Аутентификация REST API для WordPress с использованием стороннего метода (реализация Postman)
  • Заменить <access_token> or < id_token > с соответствующим токеном, предоставленным вашим поставщиком OAuth 2.0.
  • Заменить < app-name > с соответствующим названием вашего приложения.
  • Пример:
  • Аутентификация REST API для WordPress с использованием стороннего метода. Postman заменяет URL-адрес на фактический ресурс.

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


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


Как это настроить?

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

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


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


Эта функция позволяет выбрать собственный заголовок вместо стандартного заголовка «Авторизация».

Это повысит безопасность, поскольку заголовок будет иметь ваше «пользовательское имя», поэтому, если кто-то отправит запрос к REST API с заголовком «Authorization», он не сможет получить доступ к API.


Как это настроить?

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

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


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


Как это настроить?

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

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


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


Как это настроить?

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

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


5. Включите расширенное шифрование для токенов с использованием HMAC.


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

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

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


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

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

Мы поддерживаем 2 алгоритма подписи: HS256 и RS256. Таким образом, любой из алгоритмов подписи можно выбрать из выпадающего списка, как показано на изображении выше.

Кроме того, вам необходимо добавить секретный ключ клиента или сертификат, который будет использоваться для подписи JWT-токена.


7. Создайте API-ключ/токены, специфичные для каждого пользователя.


  • Эта функция доступна в рамках метода API-ключа, при котором токены могут генерироваться в соответствии с информацией о пользователе, а не в виде случайно сгенерированного токена, являющегося универсальным ключом.
  • Используя универсальный ключ/токен API, пользователи не имеют разрешения на доступ к определенным REST API для WordPress с помощью запросов POST, PUT или DELETE, например, для создания пользователей, записей или страниц и т. д., где для выполнения операций с использованием запроса REST API требуются определенные права/роли пользователя, поскольку универсальный ключ генерируется случайным образом и не содержит описания, специфичного для пользователя.
  • Таким образом, функция API-ключа/токена, основанная на пользователе, позволяет пользователю получать доступ к REST API с помощью методов запроса POST, PUT, DELETE в WordPress, для выполнения операций с которыми требуются учетные данные пользователя или определенные роли. При отправке запроса к REST API WordPress с использованием ключа, основанного на пользователе, определяется роль пользователя, и ему будет разрешен доступ к API только в том случае, если у него есть соответствующие разрешения.
  • Например: Только пользователи с ролями администратора и редактора имеют право создавать/редактировать/удалять публикации.
  • Таким образом, если к этому API будет отправлен запрос на создание/удаление/редактирование записи, API ответит сообщением «Вам не разрешено выполнять эту операцию».
  • Теперь, если запрос отправлен с использованием пользовательского токена, сгенерированного для пользователя с ролью администратора или редактора, то только он имеет доступ к этому API и может выполнять операции (создание/обновление/удаление) через вызов API.
  • Как использовать эту функцию:

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


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



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

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

REST API для WordPress с использованием стороннего поставщика

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

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

ADFS_sso ×
Привет!

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

поддержка