の検索結果 :

×

WordPress REST APIのベーシック認証方法


WordPress REST API 基本認証を使用すると、ユーザー名、パスワード、またはクライアント資格情報から生成された API トークンを検証することで、WordPress REST API へのアクセスを検証できます。

WordPress REST API エンドポイントにアクセスするリクエストが行われるたびに、関連付けられたトークンに対する認証が行われます。 その後、その特定の API リクエストのリソースへのアクセスは、この API トークンの検証の成功に基づいて決定されます。 セキュリティを維持するために、アクセス トークンは暗号化され、セキュリティ/データ侵害を防ぎます。


WordPress Rest API 認証
投稿者:miniOrange

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

詳細を知りたい

ダウンロードとインストールの手順

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


ユースケース: 基本認証を使用した WordPress REST API エンドポイント アクセスの保護/保護

    1. ユーザーの認証情報に基づいて、次のようにします。

    Android/iOS アプリがあり、モバイル アプリに個人的なフィードやブログを投稿する機能をユーザーに提供しているとします。

    この場合、モバイル アプリでのリクエストを認証する必要があります。

    この場合、ユーザー名とパスワードを使用した WordPress 基本認証 REST API が最適な認証方法です。 ユーザーの権限や機能を必要とする REST API を介して WordPress 操作を実行すると便利です。

    ユーザー セッションが作成され、WordPress 機能に基づいて、REST API コンテンツにアクセスしたり、必要な操作を実行したりすることが許可されます。


      ユーザー認証情報を使用した WordPress REST API の基本認証方法

    2. クライアントの認証情報に基づいて、次の手順を実行します。

    Android または iOS アプリケーションがあり、その REST API エンドポイントを通じて WordPress コンテンツと対話したいと考えていると想像してください。 ただし、侵入者が WP サイトに不正アクセスできる可能性がある漏洩を防ぐために、WP ユーザー資格情報を利用することには消極的です。

    このようなシナリオでは、WordPress Basic Authentication Rest API を使用し、クライアント ID とクライアント シークレットを利用して WP ユーザー資格情報を保護することをお勧めします。

    この方法では、プラグインによって提供されるクライアント ID とクライアント シークレットを各リクエストに含めるだけで済みます。 したがって、クライアント ID とシークレットは各 API リクエストの Basic Authorization ヘッダー内で暗号化された形式で送信されるため、セキュリティは損なわれません。 これらの資格情報は検証され、検証に成功すると、WP API Basic Auth によって要求された API へのアクセスが許可されます。


      クライアント認証情報を使用した WordPress REST API の基本認証方法

次の REST API 基本認証方法のいくつかの使用例:

REST APIのBasic認証方式の設定


ミニオレンジ画像 ユーザー名とパスワードを使用した REST API 基本認証:

  • プラグインで、に移動します メソッドの構成 左側のセクションのタブ。
  • ソフトウェアの制限をクリック 基本認証 API 認証方法として。
  • ユーザー名とパスワードを使用した WordPress REST API の基本認証方法
  • 選択 Base64エンコーディングによるユーザー名とパスワード をクリックし Next 右上隅にあります。
  • ユーザー名とパスワードを使用した WordPress REST API の基本認証方法
  • 機能をテストするには、既存のユーザーのユーザー名とパスワードのフィールドに入力します。
  • ユーザー名とパスワードを使用した WordPress REST API の基本認証方法
  • REST API エンドポイントを編集して、そのエンドポイントから詳細を取得できます。 例: ここでは /pages エンドポイントが選択されています。
  • セットアップボタンをクリックすると、セットアップが開始されます テスト構成 ボタンを押して、画面に表示される結果を確認します。
  • クリック 終了
  • ユーザー名とパスワードを使用した WordPress REST API の基本認証方法
  • ユーザー名とパスワードを含む REST API 基本認証設定を保存した後、WordPress REST API にアクセスするには、それぞれの認証キーを使用して REST API リクエストを送信する必要があります。 以下に示すようなリクエスト形式を使用する必要があります。
  •    Request: GET https://<domain-name>/wp-json/wp/v2/posts
       Header: Authorization: Basic base64encoded <username:password>
    Sample Request Format- Example => username : testuser and password : password@123

    
         Sample curl Request Format-
         curl -H "Authorization:Basic base64encoded <username:password>"
         -X POST http://<wp_base_url>/wp-json/wp/v2/posts -d "title=sample post&status=publish" 
     
  • PHP の Base64_encode(string) 関数は、base64 エンコード用に次のように使用できます。
  • 
    base64_encode(‘testuser:password@123’) will results into ‘eGw2UllOdFN6WmxKOlNMRWcwS1ZYdFVrbm5XbVV2cG9RV FNLZw==’ as output.
    Sample request: GET https://<domain-name>/wp-json/wp/v2/posts Header: Authorization : Basic eGw2UllOdFN6WmxKOlNMRWcwS1ZYdFVrbm5XbVV2cG9RVFNLZw==
  • チェックアウトします エラー応答 ユーザー名とパスワードを使用した基本認証の場合。

ミニオレンジ画像 プログラミング言語のコードサンプル



 
    var client = new RestClient("http://<wp_base_url>/wp-json/wp/v2/posts ");
	client.Timeout = -1;
	var request = new RestRequest(Method.POST);
	request.AlwaysMultipartFormData = true;
	request.AddParameter("title", "Sample Post");
	request.AddParameter("status", "publish");
	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("title","Sample Post")
    .addFormDataPart("status", "publish") 
    .build();
    Request request  = new Request.Builder()
    .url("http://<wp_base_url>/wp-json/wp/v2/posts ")
    .method("POST", body)
     .build();
    Response responseclient.newCall(request).execute();
            
 
    var form = new FormData();
    form.append("title","Sample Post");
    form.append("status", "publish"); 

    var settings  = {
        "url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
        "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/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 => 'POST',
            CURLOPT_POSTFIELDS => array('title' => 'Sample Post','status' => 'publish'),
            ));
          
    $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=title;')) 

    dataList.append(encode('Content-Type: {}'.format('text/plain')))    
    dataList.append(encode(''))    

    dataList.append(encode("Sample Post"))
    dataList.append(encode('--' + boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=status;'))    

    dataList.append('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))    

    dataList.append(encode("publish")) 
    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/wp/v2/posts ", payload, headers)
    res= conn.getresponse()    
    data = res.read()    
    print (data.decode("utf-8"))   
 

ミニオレンジ画像 郵便配達員のサンプル:

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

  • セットアップボタンをクリックすると、セットアップが開始されます 郵便配達員のサンプル プラグインのタブ。
  • WordPress REST API Basic認証方式ポストマン実装
  • 次に、Basic Authentication Postman Samples カードの上にマウスを置きます。
    • a) ユーザー名とパスワードの場合

        WordPress REST API 基本認証方式 postman ユーザー名:パスワードの JSON ファイル
      • ダウンロードしたものをインポートする JSONファイル 以下に示すように、Postman アプリケーションに入力します。
      • WordPress REST API Basic認証方式 postman import JSONファイル
      • json ファイルをインポートしたら、最後の図に示すように、[コレクション] の下にある REST API リクエストをクリックします。 交換してください Wordpress ドメインを使用して、 http://<wp_base_url>/wp-json/wp/v2/posts そして、 Base64エンコード ヘッダーにはベースエンコードされた値が含まれます。
        • 例:
          ユーザー名:testuser、パスワード:password@123 の場合、base64 でエンコードされた値は「dGVzdHVzZXI6cGFzc3dvcmRAMTIz」になります。

      WordPress REST API 認証キーメソッド postman replace ベース URL

      b) クライアント ID とクライアント シークレットの場合

      • WordPress REST API 基本認証方式 postman クライアント ID とクライアント シークレットの JSON ファイル
      • ダウンロードしたものをインポートする JSONファイル 以下に示すように、Postman アプリケーションに入力します。
      • WordPress REST API Basic認証方式 postman import JSONファイル
      • json ファイルをインポートしたら、最後の図に示すように、[コレクション] の下にある REST API リクエストをクリックします。 今、交換してください Wordpress ドメインを使用して、 http://<wp_base_url>/wp-json/wp/v2/posts そして、 Base64エンコード ヘッダーにはベースエンコードされた値が含まれます。
      • WordPress REST API 基本認証方式 postman replace ベース URL

ミニオレンジ画像 機能説明

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

    この機能を使用すると、ユーザーのロールに応じて REST API アクセスを制限できます。 REST API を介して、要求されたリソースへのアクセスを許可するロールを指定するオプションがあります。 したがって、ユーザーが REST API リクエストを行うと、そのロールがチェックされ、そのロールがホワイトリストに含まれている場合にのみ、リソースへのアクセスが許可されます。


    それを構成する方法は?

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

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


    2. カスタムヘッダー:

    この機能は、デフォルトのヘッダーの代わりにパーソナライズされたヘッダーを選択する機能を提供します。 「認可」 ヘッダ。 これにより、カスタム設定に従ってヘッダーに名前を付けることができるため、セキュリティが強化されます。 したがって、誰かが次の名前のヘッダーを使用して REST API リクエストを作成しようとすると、 「認可、' API へのアクセスが許可されます。


    それを構成する方法は?

    • まず、プラグインに移動します '高度な設定' タブには何も表示されないことに注意してください。
    • その後、 「カスタムヘッダー」 セクションでは、テキストボックスを編集して、必要なカスタム名を入力できます。
    • WordPress REST API Basic認証方式ポストマン実装

    3. REST API を除外します。

    この機能を使用すると、特定の REST API をホワイトリストに指定し、認証を必要とせずに直接アクセスできるようにすることができます。 その結果、ホワイトリストに登録されたこれらすべての REST API がパブリックにアクセスできるようになります。


    それを構成する方法は?

    • まず、プラグインに移動します '高度な設定' タブには何も表示されないことに注意してください。
    • その後、 「REST APIを除外する」、公開アクセスのためにホワイトリストに登録する必要がある所定の形式で API を入力できます。
    • WordPress REST API Basic認証方式ポストマン実装
    • 例: REST API を除外するとします。/wp-json/wp/v2/posts' の場合は、テキストボックスに「/wp/v2/posts」と入力する必要があります。

    4. HMAC を使用してトークンの高度な暗号化を有効にします。

    この機能は基本認証方法内で提供され、通常、トークンはデフォルトで Base64 エンコードを使用して暗号化されます。 ただし、詳細オプションを使用すると、安全性の高い HMAC 暗号化方式を使用してトークンを暗号化できるため、非常に高いレベルのセキュリティが保証されます。


    ユーザー認証情報を使用した WordPress REST API の基本認証方法

ミニオレンジ画像 その他のリソース

お困りですか?

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

こんにちは!

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

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

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

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