の検索結果 :

×

会員登録 お問い合わせ

WordPress 用の REST API JWT 認証方法

REST API の JWT 認証は、 WordPress の REST API エンドポイントを安全に保つためのシンプルな方法です。毎回ユーザー名とパスワードを送信する代わりに、WordPress の JWT 認証では、安全なトークンを使用してリクエストの発信者を確認します。これにより、承認されたユーザーまたはアプリのみが保護された REST API エンドポイントにアクセスできるようになります。JWT トークンWordPress のユーザー認証情報を使用して生成され、高度に暗号化されているため、アクセスを損なうことなく強力なセキュリティが確保されます。



WordPress の REST API 認証

WordPress用REST API認証プラグインは、WordPressのREST APIへの不正アクセスからセキュリティを提供します。このプラグインは、基本認証、APIキー認証、OAuth 2.0認証、JWT認証など、複数の認証方法に対応しています。

もっと知る   

WordPressにおけるJWT認証とは何ですか?

REST API の JWT 認証は、 WordPress の REST API エンドポイントを安全に保つためのシンプルな方法です。毎回ユーザー名とパスワードを送信する代わりに、WordPress の JWT 認証では、安全なトークンを使用してリクエストの発信者を確認します。これにより、承認されたユーザーまたはアプリのみが保護された REST API エンドポイントにアクセスできるようになります。JWT トークンWordPress のユーザー認証情報を使用して生成され、高度に暗号化されているため、アクセスを損なうことなく強力なセキュリティが確保されます。

  • WordPress サイトに管理者としてログインします。
  • WordPress ダッシュボードからプラグインに移動し、「新規追加」をクリックします。
  • を検索 WPのREST API認証.
  • 「今すぐインストール」をクリックして、プラグインをサイトに追加します。
  • インストール後、「アクティブ化」をクリックしてプラグインの使用を開始します。


モバイルアプリケーションやウェブアプリケーションを開発していて、WordPressのREST APIへのアクセスを制御する必要がある場合は、REST API向けJWT認証が安全なソリューションを提供します。WordPress向けJWT認証を使用すると、アクセスレベルを定義できるため、特定の権限を持つユーザーはコンテンツの作成や更新が可能になり、その他のユーザーはデータの閲覧のみに制限されます。

  • 使い方 JWTトークンベースの認証REST APIエンドポイントは、有効なWordPressユーザー認証情報から生成されたJWTアクセストークンによって保護されています。AuthorizationヘッダーにJWTトークンを含めることで、アプリケーションは保護されたリソースに安全にアクセスしたり、ロールベースのアクションを実行したりできます。 REST API の JWT 認証.
  • これらのトークンは、HSAやRSAなどの暗号化アルゴリズムを使用して保護されており、一定期間後に自動的に有効期限が切れるため、セキュリティが強化されます。各トークンにはWordPressユーザー情報が含まれており、秘密鍵または証明書を使用して復号化できるため、JWT認証は複数のシステム間でユーザーを同期したり、アカウントを作成したりするのに最適です。
  • WordPress用JWTリフレッシュトークン ユーザーが再度ログインすることなく、安全にセッションを更新できるようにします。全体として、JWTトークンベースの認証とWordPress向けのJWT認証を組み合わせることで、安全なAPIアクセスが確保されるとともに、アプリケーションとWordPress間のシームレスで効率的な通信が可能になります。

  • WordPress 用の JWT 認証による REST API のセキュリティ保護
  • WordPress用のJWT認証REST APIメソッド(JWT使用)

    1. WordPress 用の REST API リクエストは、必要な認証情報とパラメータを使用して開始され、WordPress の JWT 認証を使用して JWT トークンを生成します。発行されたトークンは、JWT トークンベースの認証によって保護され、HS256RSAなどの業界標準アルゴリズムを使用して暗号化され、強力なデータ保護が確保されます。

    2. 以降のリクエストでは、データの取得やアクションの実行を行うREST API呼び出しに、AuthorizationヘッダーにJWTトークンがベアラートークンとして含まれます。REST APIのJWT認証では、プラグインはリクエストを処理する前にトークンを検証します。トークンが有効な場合は、要求されたリソースへのアクセスが許可されます。そうでない場合は、エラー応答が返されます。このプロセスにおいて、WordPress用JWT認証プラグインはトークンの作成と検証の両方を処理し、すべてのAPIリクエストのセキュリティを確保します。



関連する使用例:

  • WordPressのREST APIエンドポイントに対して、JWT認証付きのリクエストを行うにはどうすればよいですか?
  • JWT(JSON Web Token)を使用したWooCommerce/WordPressのREST APIの認証。



  • プラグインで、に移動します メソッドの構成 左側のセクションのタブ。
  • ソフトウェアの制限をクリック JWT認証 API 認証方法として。
  • WordPress 用の REST API jwt 認証方法
  • まず トークン生成タイプ 。 デフォルトでは、 HS256 アルゴリズムとランダムに生成された固有の秘密鍵がそれぞれ使用され、クリック 次へ 右上隅にあります。
  • 機能をテストするには、次のように入力します。 (NAIST) と パスワード 既存のユーザーのフィールド。
  • WordPress 用の REST API jwt 認証方法
  • ソフトウェアの制限をクリック トークンのフェッチ レスポンスとしてJWTトークン(jwt_token)が表示されます。その値をクリップボードにコピーして、GETリクエストに使用できます。
  • 手順 6 で取得した JWT トークンを貼り付けます。
  • 詳しくはこちら テスト構成 そして応答が画面に表示されます。
  • クリック 仕上げ
  • WordPress 用の REST API jwt 認証方法
  • プラグインで、次の場所に移動します。 API認証の構成 タブをクリックして JWT認証 API 認証方法として。
  • まず 署名アルゴリズム (NAIST) と クライアントシークレットデフォルトでは、HS256アルゴリズムとランダムに生成された秘密鍵がそれぞれ使用されます。
  • 最後に、をクリックします 構成の保存 そのため、REST API の JWT 認証が有効になります。
  • WordPress用のJWT認証REST APIメソッド(JWT使用)
  • ここでは、XNUMX つの API 呼び出しを行う必要があります。

  • JWT トークンを取得するには、以下のようにトークン エンドポイントに対して REST API 呼び出しを行う必要があります。
  • 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エンドポイントは、WordPressのユーザー認証APIまたはログインAPIエンドポイントとも呼ばれ、WordPressユーザーの認証情報を使用してこのエンドポイントにリクエストを送信し、認証情報が有効な場合は、JWTトークンを含む成功レスポンスが返され、そうでない場合は、それに応じたエラーレスポンスが表示されます。

  • チェックアウトします エラー応答 JWTトークンを取得するため。
  • JWTトークンを取得したら、以下に示すように、それを使用してWordPressのREST APIへのアクセスをリクエストできます。
  • 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 時間有効ですが、カスタマイズすることもできます。トークンの有効期限が切れると、再度生成できます。
  • チェックアウトします 開発者のドキュメント をご覧ください。
  • チェックアウトします エラー応答 JWTトークンを使ったAPIを作成するためのものです。

おめでとうございます!miniOrange REST API認証方式を使用して、WordPressのREST API呼び出しにJWT認証方式を正常に設定しました。


 
  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"))   
  

    Postman を使用して REST API リクエストを作成するには、次の手順に従います。

  • 以下を行うには、 郵便配達員のサンプル プラグインのタブ。
  • WordPress Postman実装のためのREST API JWT認証方法
  • A JSONファイル 自動ダウンロードされます。
  • WordPress用REST API JWT認証方法(Postman JSONファイル)
  • ダウンロードしたものをインポートする JSONファイル 以下に示すように、Postman アプリケーションに入力します。
    • json ファイルをインポートしたら、以下の REST API リクエストをクリックします。 コレクション 最後の図に示すように、 Wordpress ドメインを使用して、 http://<wp_base_url>/wp-json/wp/v2/posts そして、 WordPress ユーザー名と 本文パラメータにWordPressのパスワードを含めてください。
    • WordPress Postman の REST JWT 認証方式でベース URL を置き換える
    • 例:
    • WordPress用REST JWT認証方法、PostmanでのベースURL置換例
    • 注: レスポンスから取得した jwt トークンをコピーします。これは、リソース API リクエストで認証に使用されます。
    • json ファイルをインポートしたら、以下の REST API リクエストをクリックします。 コレクション 最後の図に示すように、 Wordpress ドメインを使用して、 http://<wp_base_url>/wp-json/wp/v2/posts そして、 トークン要求の後に取得した応答からコピーされた jwt トークンを使用します。
    • WordPress Postman の REST JWT 認証方法、ベース URL の実際のリソースの置き換え
    • 例:
    • WordPress Postman 用 REST API JWT 認証方法 URL を実際のリソースに置き換える

1. ロールベースの REST API の制限:


この機能は、ユーザーの役割に基づいてWordPressのREST APIへのアクセスを制限します。特定のREST APIリソースへのアクセスを許可する役割をリストに追加できます。REST APIリクエストが行われると、ユーザーの役割がチェックされ、その役割がリストに追加されている場合にのみアクセスが許可されます。


WordPress でロールベースの REST API 制限を構成する方法は?

  • プラグインの詳細設定タブに移動します。
  • ロールベースの制限セクションでは、デフォルトですべてのロールが API にアクセスできるようになります。
  • API へのアクセスを制限するロールの横にあるチェックボックスを有効にします。
  • WordPress Postman実装のためのREST API基本認証方式
  • 上記のスクリーンショットでは、サブスクライバー ロールのチェックボックスが有効になっています。そのため、サブスクライバー ロールを持つユーザーが API リクエストを行うと、そのユーザーは要求されたリソースにアクセスできなくなります。

注:ロールベースの制限機能は、基本認証(ユーザー名:パスワード)、JWT方式、およびOAuth 2.0(パスワードグラント)で有効です。


2. カスタムヘッダー:


カスタムヘッダー機能を使用すると、デフォルトの「Authorization」ヘッダーの代わりにカスタムヘッダーを使用できます。これにより、REST APIは定義済みのカスタムヘッダー名を持つリクエストのみを受け入れるため、セキュリティが強化されます。デフォルトの「Authorization」ヘッダーを使用してリクエストを送信しようとすると、アクセスは拒否されます。


WordPressのREST API認証でカスタムヘッダーを設定する方法は?

  • プラグインの詳細設定タブに移動します。
  • 「カスタム ヘッダー」セクションで、テキストボックスに希望するヘッダー名を入力します。
  • 変更を保存して、API リクエストに新しいカスタム ヘッダーを適用します。
  • WordPress Postman実装のためのREST API基本認証方式

3. REST API を除外します。


「REST API の除外」機能を使用すると、特定のREST API エンドポイントへの認証なしのアクセスを許可できます。除外された API は公開され、トークンやログインを必要とせずにアクセスできるようになります。


JWT 認証で除外される REST API を構成するにはどうすればよいでしょうか?

  • プラグインの詳細設定タブに移動します。
  • 「REST API を除外する」セクションで、必要な形式で API エンドポイントを入力します。
  • 入力された API は認証から除外され、パブリックアクセスが可能になります。
  • WordPress Postman実装のためのREST API基本認証方式
  • 例: REST API ' ' を除外したい場合「/wp-json/wp/v2/posts」の場合は、テキストボックスに「/wp/v2/posts」と入力する必要があります。

4. カスタムトークンの有効期限:


カスタムトークン有効期限機能は、 JWT と OAuth 2.0 認証方法を設定することで カスタム有効期限 WordPress REST APIエンドポイントへのアクセスに使用されるトークン。設定された時間が経過すると、トークンは自動的に無効になります。 無効セキュリティを強化し、アクセス期間を制御できるようになります。

JWT 認証でカスタム トークンの有効期限を設定するにはどうすればよいでしょうか?

  • プラグインの詳細設定タブに移動します。
  • トークン有効期限設定セクションを開きます。
  • アクセス トークンの有効期限を調整します (デフォルト: 60 分)。
  • (OAuth 2.0 の場合) リフレッシュ トークンの有効期限を調整します (デフォルト: 14 日間)。
  • 変更を保存して、カスタム トークンの有効期限設定を適用します。
  • WordPress Postman実装のためのREST API基本認証方式

5. JWTベースのトークンの署名検証:


署名検証機能は安全に署名します JWTトークン WordPress の REST API 認証を保護するため。各トークン署名は、 クライアントシークレットまたは証明書署名が残るようにする プライベートで安全 権限のないユーザーによるアクセスや変更はできません。

WordPress Postman実装のためのREST API基本認証方式

HS256 または RS256 を使用して JWT 署名検証を構成する方法

このプラグインは、JWTトークンの署名アルゴリズムとしてHS256とRS256の2種類をサポートしています。ドロップダウンメニューからどちらかのアルゴリズムを選択できます。署名検証を完了するには、 JWT署名を安全に署名し、トークンの真正性を保証するために使用されるクライアントシークレットまたは証明書を追加してください。

6. リフレッシュトークン


リフレッシュトークンは、ユーザーが再度ログインすることなく新しいアクセストークンを取得するために使用される、有効期限の長いトークンです。この機能は、アクセストークンの有効期限が切れた際にユーザーのセッションを維持するために不可欠です。アクセストークンは通常、セキュリティ上の理由から有効期限が短く(15分から1時間程度)、リフレッシュトークンはより長い期間(数日、数週間、あるいは数ヶ月)有効になるように設計されています。

7. トークンを取り消す


トークンの失効とは、有効期限が切れる前にトークンを無効にすることを意味します。この機能はセキュリティにとって非常に重要であり、特に次のような場合に重要です。

  • ユーザーがセッションからログアウトします。
  • ユーザーがパスワードを変更します。
  • トークンが侵害される(盗難または漏洩する)。
  • 管理者は、特定のユーザーに対して強制的にログアウトを実行したり、トークンを無効にしたりしたいと考えています (例: セキュリティ侵害後)。


JWTは、JWTトークンベースの認証を使用してすべてのリクエストを検証することでセキュリティを確保し、ユーザー名とパスワードを繰り返し送信する必要がありません。REST APIのJWT認証では、トークンはデジタル署名(HS256)または秘密鍵(RSA)で署名されるため、検出されずに改ざんすることはできません。また、トークンは一定時間後に有効期限が切れるため、トークンが漏洩した場合のリスクを軽減できます。このように、JWT認証はWordPressのREST APIエンドポイントを保護するための安全な方法と言えます。

Authorization ヘッダーを使用して Bearer トークンとしてリクエスト ヘッダーにトークンを追加する必要があります。これは REST API の JWT 認証における標準的なアプローチであり、JWT トークンベース認証の中核をなすものです。例:
Authorization: Bearer YOUR_JWT_TOKEN

アクセストークンの有効期限が切れると、APIは認証エラー(通常は401)を返します。WordPressのJWT認証では、リフレッシュトークン(JWTリフレッシュトークン)を使用して、再度ログインすることなく新しいアクセストークンを要求できます。このフローは、JWTトークンベース認証の重要な利点であり、REST APIのJWT認証においてセッションのセキュリティと使いやすさを維持します。

はい。このプラグインは、設定に応じてHS256とRSAの両方を使用したトークン署名をサポートしています。HS256は共有シークレットを使用し、RSAは公開鍵と秘密鍵のペアを使用します。この柔軟性により、JWTトークンベースの認証が強化され、REST APIのJWT認証におけるさまざまなセキュリティ要件に対応できます。

WordPressのJWT認証は、簡単な2ステップの手順でテストできます。

  • トークンを生成する: プラグインのトークンエンドポイントを有効な WordPress 認証情報で使用し、JWT を受け取ったことを確認します。 curl -d" username=&password =「-X POST http:///wp-json/api/v1/トークン
  • 保護された REST API エンドポイントを呼び出す: 保護されたエンドポイントに次のリクエストを送信します:
    Authorization: Bearer YOUR_JWT_TOKEN




フル機能のトライアル版を入手



 ご返信ありがとうございます。すぐにご返信させていただきます。

何か問題が発生しました。 もう一度質問を送信してください

外部/サードパーティ REST API エンドポイントを統合する

お困りですか?

ご要望について迅速なガイダンス(メールまたはミーティング)をご希望の場合は、 apisupport@xecurify.comまでメールでお問い合わせください。弊社のチームがお客様のご要望に最適なソリューション/プランの選択をお手伝いいたします。


ADFS_sso ×
こんにちは!

助けが必要? 私たちはここにいます!

対応