の検索結果 :

×

WordPress REST API JWT 認証方法


WordPress REST API エンドポイント認証のこの方法には、JWT (JSON Web トークン) に基づく検証時の REST API アクセスが含まれます。WordPress REST API エンドポイントへのアクセス要求が行われるたびに、認証はその JWT トークンに対して行われます。そして、その JWT トークンの検証に基づいて、その API リクエストのリソースへのアクセスが許可されます。 JWT トークンは WordPress ユーザー認証情報に基づいて生成され、高度に暗号化されるため、セキュリティが侵害されることはありません。




WordPress Rest API 認証
投稿者:miniOrange

WordPress REST API 認証プラグインは、WordPress REST API への不正アクセスからのセキュリティを提供します。

詳細を知りたい

ダウンロードとインストール

  • WordPress インスタンスに管理者としてログインします。
  • WordPress に移動します ダッシュボード -> プラグイン をクリックします。入力したコードが正しければ、MFAの設定は正常に完了します 新規追加.
  • WordPress を検索する RESTAPI認証 プラグインを選択してクリックします 今すぐインストール.
  • インストールしたら、をクリックします アクティブにしましょう.

idp_sso_image1 使用事例: JWT (JSON Web Token) を使用した WordPress REST API エンドポイントの安全/保護または認証。

  • モバイル/Web アプリケーションがあり、ユーザーの機能に基づいて WordPress REST API エンドポイントへのアクセスを許可し、その特定の機能を持つユーザーのみが作成/更新操作を実行し、他のロールを持つユーザーは表示のみできるようにしたいとします。 このような場合、ユーザーの資格情報に従って取得した JWT(JSON Web Token) を使用して REST API エンドポイントを認証することができ、WordPress JWT 認証を使用すると非常に安全に認証を行うことができます。 したがって、Authorization ヘッダーで渡されたこの JWT を使用して REST API リクエストを作成すると、リソース/データへのアクセスが許可されるか、特定のユーザー機能を必要とする WordPress 操作を実行するための機能/承認が提供されます。 WordPress REST API の JWT 認証は、HSA または RSA の 2 つの方法を使用してトークンの暗号化を提供し、有効期間は限られています。 したがって、セキュリティは心配ありません。


    JWT 認証用に生成された JWT トークンは WordPress ユーザー情報で構成されているため、このトークンは別のアプリケーションで有効な秘密キー/公開証明書を使用してデコードされ、そこでユーザーを作成したり、更新されたユーザー情報を同期したりできます。 JWT トークンは時間ベースのトークンでもあり、要件に従って設定できる一定の時間が経過すると期限切れになります。そのため、期限切れになると、API へのアクセスが許可されなくなり、ユーザー情報もデコードできなくなります。 WordPress REST API の JWT 認証は、安全な認証方法です。


  • JWT メソッドを使用して実現できる WordPress REST API 認証のフローを以下に説明します。
  • WordPress REST API JWT jwtを利用した認証方法

      1. WordPress REST API リクエストは、JWT トークンを取得するために必要なすべてのパラメーターを使用して作成されます。 取得された JWT トークンは、HSA または RSA アルゴリズムを使用して暗号化された形式で提供されるため、最大限のセキュリティが確保されます。

      2. 次に、リソース/データにアクセスするため、または WordPress データベースで操作を実行するための実際の WordPress REST API リクエストは、最後のステップで取得した JWT トークンを使用して作成され、トークン タイプを Bearer として Authorization ヘッダーに渡され、プラグインはその JWT トークンを検証し、検証または認証が成功すると、API リクエスターにリソースが提供され、そうでない場合はエラー応答が返されます。 したがって、私たちのプラグインは、JWT トークン プロバイダーと JWT トークン バリデーターの両方として機能します。


関連する使用例:

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

idp_sso_image1 次の Rest API 認証方法のユースケースを参照してください。


REST API JWT認証方式の設定


  • プラグインで、に移動します メソッドの構成 左側のセクションのタブ。
  • ソフトウェアの制限をクリック JWT認証 API 認証方法として。
  • WordPress REST API jwt 認証方法
  • 現在地に最も近い トークン生成タイプ 。 デフォルトでは、 HS256 アルゴリズムとランダムに生成された一意の秘密キーがそれぞれ使用され、クリックします。 Next 右上隅にあります。
  • 機能をテストするには、次のように入力します。 & パスワード 既存のユーザーのフィールド。
  • WordPress REST API jwt 認証方法
  • ソフトウェアの制限をクリック トークンのフェッチ 。 応答として JWT トークン (jwt_token) が表示され、その値をクリップボードにコピーして GET リクエストを行うことができます。
  • 手順 6 で取得した JWT トークンを貼り付けます。
  • クリック テスト構成 そして応答が画面に表示されます。
  • クリック 終了
  • WordPress REST API jwt 認証方法

  • ここでは、XNUMX つの API 呼び出しを行う必要があります。

I : JWT トークンを取得する

  • 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トークンを取得するため。

II : API リクエストの送信

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

    idp_sso_image1 郵便配達員のサンプル:

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

    • セットアップボタンをクリックすると、セットアップが開始されます 郵便配達員のサンプル プラグインのタブ。
    • WordPress REST API JWT 認証方式 postman 実装
    • A JSONファイル 自動ダウンロードされます。
    • WordPress REST API JWT 認証方式 postman JSON ファイル
    • ダウンロードしたものをインポートする JSONファイル 以下に示すように、Postman アプリケーションに入力します。
    • JWTトークンを取得するためのREST APIリクエスト
      • 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 リクエストで使用されます。
    • 実際のリソースを取得するためのREST 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 実際のリソース

    idp_sso_image1 機能の説明

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

      この機能を使用すると、ユーザーのロールに基づいて REST API アクセスを制限できます。 REST API の要求されたリソースへのアクセスを許可するロールをホワイトリストに登録できます。 したがって、ユーザーによって REST API リクエストが行われるたびに、ユーザーのロールがフェッチされ、そのロールがホワイトリストに登録されている場合にのみリソースへのアクセスが許可されます。


      それを構成する方法は?

      • まず、プラグインの「詳細設定」タブに移動します。
      • 次に、[ロール ベースの制限] セクションで、デフォルトですべてのロールが API へのアクセスを許可されます。 アクセスを制限したい役割のチェックボックスをオンにできます。
      • WordPress REST API Basic認証方式ポストマン実装
      • 上のスクリーンショットでは、加入者ロールのチェックボックスが有効になっています。 したがって、サブスクライバーとしてのロールを持つユーザーによって API リクエストが行われるたびに、そのユーザーはリクエストされたリソースへのアクセスを許可されません。

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

      2. カスタムヘッダー

      この機能では、デフォルトの「Authorization」ヘッダーではなくカスタム ヘッダーを選択するオプションが提供されます。

      ヘッダーに「カスタム名」を付けるとセキュリティが強化されるため、誰かがヘッダーを「Authorization」として REST API リクエストを作成した場合、その人は API にアクセスできなくなります。


      それを構成する方法は?

      • まず、プラグインの「詳細設定」タブに移動します。
      • 次に、「カスタムヘッダー」セクションで、テキストボックスを編集して、必要なカスタム名を入力できます。
      • WordPress REST API Basic認証方式ポストマン実装

      3. REST APIを除外する

      この機能を使用すると、REST API をホワイトリストに登録して、認証なしで直接アクセスできるようになります。 したがって、これらのホワイトリストに登録された REST API はすべて公開されています。


      それを構成する方法は?

      • まず、プラグインの「詳細設定」タブに移動します。
      • 次に、[Exclude REST APIs] で、パブリック アクセスのためにホワイトリストに登録する必要がある API を所定の形式で入力できます。
      • WordPress REST API Basic認証方式ポストマン実装
      • 例: REST API ' ' を除外したいとします。 /wp-json/wp/v2/posts' の場合は、テキストボックスに「/wp/v2/posts」と入力する必要があります。

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

      この機能は、時間ベースのトークンを使用して WordPress REST API エンドポイントを認証する JWT および OAuth 2.0 メソッドに適用できます。 この機能を使用すると、トークンの有効期限が切れるとトークンが無効になるように、トークンのカスタム有効期限を設定できます。


      それを構成する方法は?

      • まず、プラグインの「詳細設定」タブに移動します。
      • 次に、「トークン有効期限設定」セクションで、アクセス トークンの有効性とリフレッシュ トークン (OAuth 2.0 メソッドに使用される) を変更できます。 デフォルトでは、アクセス トークンの有効期限は 60 分に設定され、リフレッシュ トークンの有効期限は 14 日に設定されています。 したがって、この機能を使用すると、要件に応じて有効期限を調整できます。
      • WordPress REST API Basic認証方式ポストマン実装

      したがって、このカスタム トークンの有効期限機能を使用すると、セキュリティがさらに強化されます。

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

      この機能により、JWT トークンの JWT 署名の安全な署名が可能になり、JWT トークンの安全性がさらに高まり、署名はクライアント シークレット/証明書を使用してのみデコードできるようになります。 これは、あなたの署名が非公開であり、他の人が見ることができないことを意味します。

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

      HS2 と RS256 の 256 つの署名アルゴリズムのサポートを提供しています。そのため、上の図に示すように、ドロップダウンからいずれの署名アルゴリズムも選択できます。

      また、JWT の署名に使用されるクライアント シークレットまたは証明書を追加する必要があります。

      お困りですか?

      メールでお問い合わせください apisupport@xecurify.com お客様の要件に関する迅速なガイダンス(電子メール/会議経由)が必要です。当社のチームは、お客様の要件に応じて最適なソリューション/プランの選択をお手伝いします。

    こんにちは!

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

    サポート
    miniOrange サポートにお問い合わせください
    成功

    お問い合わせありがとうございます。

    24 時間以内に当社からのご連絡がない場合は、お気軽にフォローアップ メールを送信してください。 info@xecurify.com