の検索結果 :

×

会員登録 お問い合わせ

WP REST API の JWT 認証

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



WordPress REST API 認証

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

もっと知る   

WordPress JWT 認証とは何ですか?

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

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


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

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

  • JWT認証によるWordPress REST APIのセキュリティ強化
  • WordPress REST API JWT jwtを利用した認証方法

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

    2. 以降のリクエストでは、データの取得やアクションの実行のためのWordPress REST API呼び出しにJWTトークンが含まれます。 ベアラートークンとしての認証ヘッダーWP 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 アルゴリズムとランダムに生成された一意の秘密鍵がそれぞれ使用され、クリックすると 次へ 右上隅にあります。
  • 機能をテストするには、次のように入力します。 の三脚と パスワード 既存のユーザーのフィールド。
  • WordPress REST API jwt 認証方法
  • ソフトウェアの制限をクリック トークンのフェッチ 応答で JWT トークン (jwt_token) が表示され、その値をクリップボードにコピーして GET リクエストを行うことができます。
  • 手順 6 で取得した JWT トークンを貼り付けます。
  • 詳しくはこちら テスト構成 そして応答が画面に表示されます。
  • クリック 仕上げ
  • WordPress REST API jwt 認証方法
  • プラグインで、次の場所に移動します。 API認証の構成 タブをクリックして JWT認証 API 認証方法として。
  • まず 署名アルゴリズム の三脚と クライアントシークレットデフォルトでは、HS256 アルゴリズムとランダムに生成された秘密キーがそれぞれ使用されます。
  • 最後に、をクリックします 構成の保存 そのため、WordPress REST API 認証の JWT 認証が有効になります。
  • WordPress REST API JWT 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 エンドポイントは次のように呼ばれます。 ユーザ認証 APIまたは WordPressログイン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 WordPress REST API 認証方法を使用して、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 REST API JWT 認証方式 postman 実装
  • 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 REST JWT 認証方法 postman replace ベース URL
    • 例:
    • WordPress REST JWT 認証方法 postman replace ベース URL の例
    • 注: レスポンスから取得した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 replace URL 実際のリソース

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


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


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

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

注意: ロールベースの制限機能は、Basic 認証 (ユーザー名: パスワード)、JWT 方式、および OAuth 2.0 (パスワード付与) で有効です。


2. カスタムヘッダー:


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


WordPress REST API 認証のカスタム ヘッダーを構成するにはどうすればよいでしょうか?

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

3. REST API を除外します。


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


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

  • プラグインの詳細設定タブに移動します。
  • 「REST API を除外する」セクションで、必要な形式で API エンドポイントを入力します。
  • 入力された API は認証から除外され、パブリックアクセスが可能になります。
  • WordPress REST API Basic認証方式ポストマン実装
  • 例: 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 REST API Basic認証方式ポストマン実装

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


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

WordPress REST API Basic認証方式ポストマン実装

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

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

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


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

7. トークンを取り消す


トークンの取り消し 有効期限が切れる前に無効にすることを意味します。この機能は セキュリティ特に次のような場合には:

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


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

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

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

はい。プラグインは設定に応じて、HS256とRSAの両方のトークン署名をサポートしています。HS256は共有鍵を使用し、RSAは公開鍵と秘密鍵のペアを使用します。この柔軟性により、JWTトークンベースの認証が強化され、WP 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 エンドポイントを統合する

お困りですか?

メールでお問い合わせください [email protected] お客様のご要望について迅速なガイダンス(電子メール/会議経由)をご提供し、当社のチームがお客様のご要望に応じて最適なソリューション/プランの選択をお手伝いします。


ADFS_sso ×
こんにちは!

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

対応