WordPress REST API OAuth 2.0 認証方法
概要
OAuth 2.0 アクセスを保護するために最も広く使用されている方法の1つです。 WordPress REST APIエンドポイント従来の方法とは異なり、 OAuth 2.0 ユーザーのメールアドレスやパスワードを外部アプリケーションに公開することなく認証できます。この認証フローでは、 OAuth 2.0プロトコル 安全な アクセストークン or IDトークン(JWTトークン)これはすべての API リクエストの認証に使用されます。 リクエストが行われるたびに WordPress REST APIエンドポイント、APIは ベアラートークン 要求されたリソースにアクセスできるかどうかを判断するために発行されるトークンは OAuth 2.0 高度に暗号化され、安全であるため、機密データは保護されます。 JWT認証, OAuth 2.0 強化されたセキュリティと追加の利点を提供し、安全を守るための好ましい方法となっています。 WordPress REST APIエンドポイント.
WordPress REST API認証プラグインは、WordPress REST APIへの不正アクセスからセキュリティを確保します。このプラグインは、Basic認証、APIキー認証、OAuth 2.0認証、JWT認証など、複数の認証方法を提供します。
詳細を見る
要件: ダウンロードとインストール
- WordPress インスタンスに管理者としてログインします。
-
WordPress に移動します ダッシュボード → プラグイン をクリックします。入力したコードが正しければ、MFAの設定は正常に完了します 新規追加.
-
WordPress を検索する RESTAPI認証 プラグインを選択してクリックします
今すぐインストール.
- インストールしたら、をクリックします アクティブにしましょう.
ユースケース: OAuth 2.0 認証方法を使用して WordPress REST API を保護するにはどうすればよいでしょうか?
1. パスワードの付与:
REST API 経由で外部プラットフォーム上の WordPress ユーザーを安全に登録または認証するにはどうすればよいですか?
- アプリケーションにログインフォームがあり、そのフォームを使用してユーザーを認証したい場合は、 WordPress 認証情報、 OAuth2.0認証 REST API メソッドを使用すると、これを実現できます。
- このプラグインは WordPressログインAPI、あなたは WordPress 認証情報 このAPIへのユーザーのアクセス。検証に基づき、認証とユーザーのアクセスを確認するレスポンスが返されます。
- 加えて、 OAuth2.0認証 REST APIメソッドはWordPressで新規ユーザーを登録するためにも使用できます。 管理者の資格情報プラグインの OAuth 2.0 トークンエンドポイント、送信することができます WordPress管理者の資格情報 管理者権限を持つトークンを生成します。
- このトークンは、次のような特権操作を実行するために使用できます。 ユーザー登録トークンが生成されると、 WordPress /users REST APIエンドポイント 機密のログイン情報を公開することなく、WordPress にユーザーを安全に登録します。
2. クライアントの認証情報:
管理者ユーザーの資格情報を使用せずに、WordPress REST API エンドポイントを安全に認証または保護し、ユーザーを登録するにはどうすればよいですか?
- アクセスしたい場合 WordPress REST API 共有せずに WordPressユーザー資格情報、またはWordPressでユーザーを安全に登録したい場合は、 管理者ユーザーの資格情報 クライアント資格情報方式 完璧な解決策です。
- 機密性の高いログイン情報を公開する代わりに、 クライアントの資格情報 プラグインによって提供されるため、資格情報が漏洩するリスクはありません。
- このプラグインは、 OAuth 2.0 アイデンティティプロバイダ(サーバー) 安全なトークンを発行し、 REST API認証子 それらを検証するため。
- 取得するとトークンは認証できる WordPress REST APIエンドポイント安全で信頼性の高いアクセスを保証します。
-
フロー ダイアグラムが含まれていないため、このフロー実装を追加する必要はありません。実装は既に 2 つのユース ケースを通じて説明されています。
1. プラグインのトークンを取得するために、適切なパラメーターを使用して REST API リクエストが作成されます。私たちのプラグインは OAuth 2.0 ID プロバイダーとして機能し、アクセス トークンを提供します。
2. リソースにアクセスするための実際の REST API リクエストは、トークン タイプをベアラーとして Authorization ヘッダーに渡された最後のステップから受け取ったアクセス トークンを使用して行われます。プラグインは、トークンの有効性に基づいて API を認証するオーセンティケーターとして機能するようになりました。トークンが正常に検証された場合、API リクエスタはリソースへのアクセスを許可されます。それ以外の場合、検証が失敗した場合はエラー応答が返されます。
関連する使用例:
- WordPress REST API を使用してログインまたはユーザー登録するにはどうすればよいですか?
- API を使用して WordPress ユーザーを認証するにはどうすればよいですか?
次の REST API 認証方法の使用例をお読みください。
パスワード付与を使用して WordPress REST API OAuth 2.0 を構成する方法は?
Request: POST https://<domain-name>/wp-json/api/v1/token
Body:
grant_type =<password>
username =<wordpress username>
password = <wordpress password>
client_id =<client id>
Sample curl Request Format-
curl -d "grant_type=password&username=<wordpress_username>&password=<wordpress_password>&client_id=<client_id>"
-X POST http://<wp_base_url>/wp-json/api/v1/token
-H 'app-name:TheAppName'
リフレッシュトークンの使用
Request: POST https://<domain-name>/wp-json/api/v1/token
Body:
grant_type = <refresh_token>
refresh_token = <Refresh Token>
Sample curl Request Format-
curl -d "grant_type=refresh_token&refresh_token=<refresh_token>&client_id=<client_id>&client_secret=<client_secret>"
-X POST http://<wp_base_url>/wp-json/api/v1/token
-H 'app-name:TheAppName'
II : 実際の WordPress REST API リクエストを送信する
-
OAuth 2.0 パスワード付与フローを使用して access_token / id_token (JWT トークン) を取得したら、以下に示すように、それを使用して WordPress REST API エンドポイントへのアクセスをリクエストできます。
Request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization :Bearer <access_token /id_token>
注: 上記のトークンはデフォルトで 1 時間有効です。有効期限が切れる前に、同じトークンを複数の REST API リクエストに複数回使用できます。トークンの有効期限が切れたら、WordPress REST API エンドポイント アクセスをリクエストするために新しいトークンを作成する必要があります。
チェックアウトします
エラー応答
OAuth 2.0 の場合はパスワード許可を使用します。
クライアント資格情報付与を使用して WordPress REST API OAuth 2.0 を構成する方法は?
-
プラグインで、「構成」に移動します。 API認証 タブを選択 OAuth2.0認証 方法としては。
-
選択する OAuth 2.0 付与タイプ as クライアント資格情報の付与.
-
詳しくはこちら 構成の保存 メソッドを有効にします。
-
保存すると、 顧客ID, クライアントシークレット, トークンエンドポイント.
-
次に、2 つの API 呼び出しを行います。1 つはトークンを取得するためのもので、もう 1 つはそのトークンを使用して WordPress REST API リクエストを認証するためのものです。
I : トークンを取得する
-
上記の設定を保存すると、クライアント ID、クライアント シークレット、トークン エンドポイントが取得されます。
- トークンを取得するには、以下に示すようにトークン リクエストを送信する必要があります。
Request: POST https://<domain-name>/wp-json/api/v1/token
Body:
grant_type = <client_credentials>
client_id = <client id>
client_secret = <client secret>
Sample curl Request Format-
curl -d "grant_type=client_credentials&client_id=<client_id>&client_secret=<client_secret>"
-X POST http://<wp_base_url>/wp-json/api/v1/token
-H 'app-name:TheAppName'
リフレッシュトークンの使用
Request: POST https://<domain-name>/wp-json/api/v1/token
Body:
grant_type = <refresh_token>
refresh_token = <Refresh Token>
Sample curl Request Format-
curl -d "grant_type=refresh_token&refresh_token=<refresh_token>&client_id=<client_id>&client_secret=<client_secret>"
-X POST http://<wp_base_url>/wp-json/api/v1/token
-H 'app-name:TheAppName'
II : API リクエストの送信
-
OAuth 2.0 クライアント認証情報によって access_token / id_token を取得したら、以下に示すように、それを使用して WordPress REST API エンドポイントへのアクセスをリクエストできます。
Request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization : Bearer <access_token /id_token>
注: 上記のトークンはデフォルトで 1 時間有効です。有効期限が切れる前に、同じトークンを複数の REST API リクエストに複数回使用できます。トークンの有効期限が切れたら、WordPress REST API エンドポイント アクセスをリクエストするために新しいトークンを作成する必要があります。
チェックアウトします
エラー応答
OAuth 2.0 の場合は、クライアント資格情報の付与を使用します。
チェックアウトします
開発者のドキュメント
をご覧ください。
追加のセキュリティ機能
その OAuth 2.0方式 追加の セキュリティ施設トークンをより細かく制御できるようになり、それによってあなたの全体的なセキュリティが向上します。 WordPressのウェブサイト.
1. リフレッシュトークン -
有効にします トークンの更新 受け取るオプション 更新トークン と一緒に アクセストークン or JWTトークン.
ユーザーは再度ログインすることなく、同じリソースに引き続きアクセスできます。
リフレッシュトークン 短命の発行を許可する アクセストークン より良いセキュリティのために。
とき アクセストークン 期限が切れると、 更新トークン 安全に新しいものを生成します。
2. トークンの取り消し -
有効にします トークンを取り消す 既存のものを無効にするオプション アクセストークン or JWTトークン.
失効すると、トークンは認証に使用できなくなります WordPress REST API.
その REST API まず検証する アプリの資格情報 トークンが要求元のアプリに属しているかどうかを確認します。
検証に合格するとトークンは無効になり、検証に失敗するとエラーが返されます。
プログラミング言語のコードサンプル
var client = new RestClient("http://<wp_base_url>/wp-json/api/v1/token ");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AlwaysMultipartFormDatatrue;
request.AddHeader("app-name", "TheAppName");
request.AddParameter("grant_type", "client_credentials");
request.AddParameter("client_id", "<client_id>");
request.AddParameter("client_secret", "<client_secret>");
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("grant_type", "client_credentials");
.addFormDataPart("client_id", "<client_id>");
.addFormDataPart("client_secret", "<client_secret>");
.build();
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/api/v1/token ")
.method("POST", null)
.addHeader("app-name", "TheAppName")
.build();
Response responseclient.newCall(request).execute();
var form = new FormData();
form.append("grant_type", "client_credentials");
form.append("client_id", "<client_id>");
form.append("client_secret", "<client_secret>");
var settings = {
"url": "http://<wp_base_url>/wp-json/api/v1/token ",
"method": "POST",
"timeout": 0,
"headers": {"app-name": "TheAppName"}
"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',
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_HTTPHEADER => array( 'app-name: TheAppName' )
CURLOPT_POSTFIELDS => array('grant_type' => 'client_credentials','client_id' => '<client_id>','client_secret' => '<client_secret>'),
));
$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=grant_type;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("client_credentials"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=client_id;'))
dataList.append('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("<client_id>"))
dataList.append(encode('--'+ boundary))
dataList.append(encode('Content-Disposition: form-data; name=client_secret;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("<client_secret<"))
dataList.append(encode('--'+boundary+'--'))
dataList.append(encode(''))
body = b'\r\n'.join(dataList)
payload= body
headers = {
'Content-type': 'multipart/form-data; boundary={}'.format(boundary),
'app-name': 'TheAppName'
}
conn.request("POST", "/wp-json/api/v1/token ", 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.AddHeader("app-name", "TheAppName");
request.AddParameter("grant_type", "password");
request.AddParameter("username", "<wordpress_username>");
request.AddParameter("password", "<wordpress_password>");
request.AddParameter("client_id", "<client_id>");
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("grant_type", "password");
.addFormDataPart("username", "<wordpress_username>");
.addFormDataPart("password", "<wordpress_password>");
.addFormDataPart("client_id", "<client_id>");
.build();
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/api/v1/token ")
.method("POST", null)
.addHeader("app-name", "TheAppName")
.build();
Response responseclient.newCall(request).execute();
var form = new FormData();
form.append("grant_type", "password");
form.append("username", "<wordpress_username>");
form.append("password", "<wordpress_password>");
form.append("client_id", "<client_id>");
var settings = {
"url": "http://<wp_base_url>/wp-json/api/v1/token ",
"method": "POST",
"timeout": 0,
"headers": {"app-name": "TheAppName"}
"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_HTTPHEADER => array( 'app-name: TheAppName' )
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=grant_type;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("password"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=username;')
dataList.append('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('Content-Disposition: form-data; name=client_id;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("<client_id>"))
dataList.append(encode('--'+boundary+'--'))
dataList.append(encode(''))
body = b'\r\n'.join(dataList)
payload= body
headers = {
'Content-type': 'multipart/form-data; boundary={}'.format(boundary),
'app-name': 'TheAppName'
conn.request("POST", "/wp-json/api/v1/token ", 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.AlwaysMultipartFormDatatrue;
request.AddHeader("app-name", "TheAppName");
request.AddParameter("grant_type", "refresh_token");
request.AddParameter("client_id", "<client_id>");
request.AddParameter("client_secret", "<client_secret>");
request.AddParameter("refresh_token", "<refresh_token>");
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("grant_type", "refresh_token");
.addFormDataPart("client_id", "<client_id>");
.addFormDataPart("client_secret", "<client_secret>");
.addFormDataPart("refresh_token", "<refresh_token>");
.build();
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/api/v1/token ")
.method("POST", null)
.addHeader("app-name", "TheAppName")
.build();
Response responseclient.newCall(request).execute();
var form = new FormData();
form.append("grant_type", "refresh_token");
form.append("client_id", "<client_id>");
form.append("client_secret", "<client_secret>");
form.append("refresh_token", "<refresh_token>");
var settings = {
"url": "http://<wp_base_url>/wp-json/api/v1/token ",
"method": "POST",
"timeout": 0,
"headers": {"app-name": "TheAppName"}
"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',
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_HTTPHEADER => array( 'app-name: TheAppName' )
CURLOPT_POSTFIELDS => array('grant_type' => 'refresh_token','client_id' => '<client_id>','client_secret' => '<client_secret>','refresh_token' => '<refresh_token>'),
));
$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=grant_type;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("refresh_token"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=client_id;'))
dataList.append('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("<client_id>"))
dataList.append(encode('--'+ boundary))
dataList.append(encode('Content-Disposition: form-data; name=client_secret;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("<client_id>"))
dataList.append(encode('--'+ boundary))
dataList.append(encode('Content-Disposition: form-data; name=refresh_token;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("<refresh_token<"))
dataList.append(encode('--'+boundary+'--'))
dataList.append(encode(''))
body = b'\r\n'.join(dataList)
payload= body
headers = {
'Content-type': 'multipart/form-data; boundary={}'.format(boundary),
'app-name': 'TheAppName'
conn.request("POST", "/wp-json/api/v1/token ", payload, headers)
res= conn.getresponse()
data = res.read()
print (data.decode("utf-8"))
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 < access_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", body)
.addHeader = ("Authorization", "Bearer < access_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": "Bearer < access_token / id_token >",
"app-name": "TheAppName"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array
(
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 < access_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': 'Bearer < access_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"))
郵便配達員のサンプル:
a) OAuth 2.0 パスワード付与方式:
- トークンを取得するためのサンプルリクエスト:
-
郵便配達員リクエストのサンプルは次からダウンロードできます。
こちら.
-
今抽出する zipファイル 抽出した jsonファイル に
郵便配達員アプリケーション.
- 例:
-
最後の手順で取得したトークンを使用してリソースを要求するサンプルの要求形式。
-
郵便配達員リクエストのサンプルは次からダウンロードできます。
こちら.
-
今抽出する zipファイル 抽出した jsonファイル に 郵便配達員アプリケーション.
- 例:
b) OAuth 2.0 クライアント認証情報の付与方法:
- トークンを取得するためのサンプルリクエスト:
-
郵便配達員リクエストのサンプルは次からダウンロードできます。
こちら.
-
今抽出する zipファイル 抽出した jsonファイル に 郵便配達員アプリケーション.
- 例:
c) 実際のリソースを取得するための REST API リクエスト:
-
郵便配達員リクエストのサンプルは次からダウンロードできます。
こちら.
-
今抽出する zipファイル 抽出した jsonファイル に 郵便配達員アプリケーション.
- 例:
機能説明
1. ロールベースの REST API の制限:
この機能は、 WordPress REST API アクセス レビューに基づき ユーザーの役割特定のアクセスを許可する特定の役割を許可リストに登録することができます。 REST APIリソース。 時 REST APIリクエスト 作成すると、ユーザーの役割がチェックされ、役割が許可リストに含まれている場合にのみアクセスが許可されます。
WordPress でロールベースの REST API 制限を構成する方法は?
- プラグインへ移動 詳細設定 タブには何も表示されないことに注意してください。
-
役割ベースの制限 セクションでは、すべてのロールがデフォルトで API にアクセスできるようになります。
-
API へのアクセスを制限するロールの横にあるチェックボックスを有効にします。
-
上記のスクリーンショットでは、サブスクライバーロールのチェックボックスが有効になっています。そのため、サブスクライバーロールを持つユーザーがAPIリクエストを送信した場合、そのユーザーはリクエストされたリソースにアクセスできなくなります。
注意: ロールベースの制限機能は、Basic 認証 (ユーザー名: パスワード)、JWT 方式、および OAuth 2.0 (パスワード付与) で有効です。
2. カスタムヘッダー:
その カスタムヘッダー 機能を使用すると、 カスタムヘッダー デフォルトの代わりに 「認証」ヘッダー.
これにより、セキュリティがさらに強化されます。 REST API 定義されたリクエストのみを受け入れます カスタムヘッダー名誰かがデフォルトの設定でリクエストを送信しようとした場合 「認証」ヘッダーアクセスは拒否されます。
WordPress REST API 認証のカスタム ヘッダーを構成するにはどうすればよいでしょうか?
- プラグインへ移動 詳細設定 タブには何も表示されないことに注意してください。
-
カスタムヘッダー セクションで、テキストボックスに希望するヘッダー名を入力します。
-
変更を保存します API リクエストに新しいカスタム ヘッダーを適用します。
3. REST API を除外します。
その REST APIを除外する 機能を使用すると、特定の REST APIエンドポイント 認証なしでアクセスできないAPIが公開され、認証なしでアクセスできるようになります。 トークン or login.
JWT 認証で除外される REST API を構成するにはどうすればよいでしょうか?
- プラグインへ移動 詳細設定 タブには何も表示されないことに注意してください。
-
REST APIを除外する セクションで、必要な形式で API エンドポイントを入力します。
-
入力された API は認証から除外され、パブリックアクセスが可能になります。
-
例: REST API ' ' を除外したい場合「/wp-json/wp/v2/posts」の場合は、テキストボックスに「/wp/v2/posts」と入力する必要があります。
4. HMAC を使用してトークンの高度な暗号化を有効にします。
この機能は、 Basic認証方式デフォルトでは、トークンは次のように暗号化されます。 Base64エンコーディングただし、詳細オプションを使用すると、 HMAC暗号化 トークン用。 HMAC より高いレベルのセキュリティを提供し、 APIリクエスト 改ざんや不正アクセスに対して強力に保護されています。
WordPress 基本認証でトークンの HMAC 暗号化を構成するにはどうすればよいでしょうか?
- プラグインへ移動 詳細設定 タブをクリックして開きます トークン暗号化方式 のセクションから無料でダウンロードできます。
-
選択する HMAC Base64をタップし、その後、 変更内容を保存 すべてのトークンに安全な暗号化を適用します。
関連記事
プラグインのデモをリクエストする
お困りですか?
メールでお問い合わせください apisupport@xecurify.com お客様のご要望について迅速なガイダンス(電子メール/会議経由)をご提供し、当社のチームがお客様のご要望に応じて最適なソリューション/プランの選択をお手伝いします。