の検索結果 :

×

サードパーティプロバイダーを使用した WordPress REST API 認証


サードパーティプロバイダー方式を使用した WordPress REST API 認証には、Google、Facebook、Firebase、Apple、Azure AD、Keycloak、Okta、AWS Cognito などのサードパーティプロバイダーから受け取ったトークン (アクセストークン/id-トークン/jwt トークン) の使用が含まれます。 、WordPress REST API に安全にアクセスするための Github、Slack、Gitlab など。

WordPress エンドポイントはデフォルトでは安全ではなく、JSON 形式の REST API を介してデータが盗まれる可能性があります。 WordPress REST API 認証を使用すると、Basic Auth、API KEY、JWT トークン、OAuth トークンなどの複数のセキュリティ メソッドを使用して REST API を呼び出すことができます。 このガイドでは、OAuth/OpenID Connect/Firebase プロバイダーによって発行された OAuth トークンを使用して、WordPress ウェブサイトの保護とセキュリティを維持する REST API リクエストを検証します。
REST API へのアクセス要求が行われるたびに、Google、Facebook、Firebase、Apple、okta などのサードパーティ プロバイダーによって発行されたトークンに対して、API の検証に基づいて認証が行われます。トークンを使用すると、その REST API リクエストのリソースへのアクセスが許可されます。 したがって、SSO ログイン後にアプリで取得した XNUMX つのトークンは、WP REST API エンドポイントにアクセスするためにさらに使用できます。


WordPress Rest API 認証
投稿者:miniOrange

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

詳細を知りたい

前提条件: ダウンロードとインストール


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

使用例: ソーシャル ログイン/OAuth 2.0/OpenID Connect ID プロバイダー (サーバー) から取得した JWT トークンを使用して、WordPress REST API エンドポイントを認証/保護します。

  • Android/iOS モバイル アプリケーションがあり、Google、Facebook、Apple、Linkedin、Instagram などの複数のソーシャル ログイン プロバイダー、または AWS Cognito、Auth0、Microsoft Azure、Okta、 Keycloak、Firebase などを使用し、ユーザーがモバイル アプリケーションから WordPress REST API エンドポイントにアクセスできるようにしたい場合は、OAuth/ OpenID Connect ID プロバイダー (サーバー) とシングル サインオン (SSO) を使用してアプリケーションにログインします。 そのため、access/id トークン/JWT は、トークン タイプを Bearer として API リクエストの Authorization ヘッダーに渡され、そのトークンの検証は、対応する OAuth/OpenId Connect/Firebase Identity プロバイダーを通じて直接行われます。 したがって、検証リクエストは、対応する OAuth/OpenID Connect サーバーに対して内部的に行われます。 トークンの検証が成功すると、REST API リクエストによりリソース/データ アクセスが行われ、検証が失敗するとエラー応答が返されます。 このようにして、OAuth/OpenID Connect ID プロバイダーからの直接認証により、リソース/データを最高レベルのセキュリティで保護できます。

  • サードパーティのキー方式を使用した WordPress REST API 認証
  • この認証のユースケースをプラグインでどのように実現できるか:
    • 1. WordPress REST API エンドポイント リクエストは、OAuth/OpenID Connect ID プロバイダーから取得したアクセス/ID トークンを使用して行われ、トークン タイプが Bearer の Authorization ヘッダーで渡されます。

      2. WordPress REST API リクエストはプラグインによって監視され、JWT トークンの検証/認証リクエストが OAuth/OpenID Connect ID プロバイダー (サーバー) に送信されます。

      3. JWT トークンを検証するために以前に行われたリクエストに対するレスポンスが OAuth/OpenID Connect ID プロバイダー (サーバー) から返されます。

      4. JWT トークンの検証/認証が成功した場合、要求されたリソースへのアクセスが許可されます。これは、リクエスタがリソース/データへのアクセスを許可されたことを意味します。トークンの検証が失敗した場合は、エラー応答が返されます。 。 したがって、リソース データは保護されており、承認に基づいてアクセスできるため、セキュリティは問題になりません。


    関連するユースケース: ソーシャル ログインまたは OAuth2.0/OpenID Connect アイデンティティ プロバイダーによって提供される JWT トークンを使用して WordPress REST API エンドポイントを阻止するにはどうすればよいですか?


    認証を実行してセキュリティを確保するか、OAuth/OpenID SSO ログイン フロー中にソーシャル ログイン/OAuth プロバイダーによって提供されるアクセス/ID トークンに基づいて WordPress REST API エンドポイントへのアクセスを許可する承認を実行するにはどうすればよいですか?

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

ステップ 1: WordPress REST API 認証プラグインをセットアップする

    • あなたの選択します。 認証方法 → サードパーティプロバイダー と追加 イントロスペクションエンドポイント OAuth/OpenID Connect プロバイダーによって提供されるをクリックします。 構成の保存.
    • サードパーティのキー方式を使用した WordPress REST API 認証
    • プロバイダーが提供するイントロスペクション エンドポイントを使用してプラグインを設定したら、以下に示すように、OAuth プロバイダーが提供するアクセス トークン/id_token を使用して WordPress REST API にアクセスしてみます。
    • Request: GET https://<domain-name>/wp-json/wp/v2/posts
      Header: 
      access_token : < access_token >
      OR
      id_token  : < id_token  >
      
    • チェックアウトします 開発者のドキュメント のガイドをご参照ください。

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


 
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", "< access_token > OR id_token <id_token>");
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", null)
 .addHeader = ("Authorization", "< access_token > OR id_token <id_token>")
 .build();
Response responseclient.newCall(request).execute();
        
 
var settings  = {
    "url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
    "method": "GET",
    "timeout": 0,
    "headers": {
      "Authorization": "< access_token > OR id_token <id_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: < access_token > OR id_token <id_token>'
    
      ),
    
        ));          
      
$response = curl_exec($curl);
curl_close($curl);    
echo $response;
        
 
import http.client

conn   = http.client.HTTPSConnection("<wp_base_url>")
payload= "
headers = {
  'Authorization': '< access_token > OR id_token <id_token>'
}
conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)
res= conn.getresponse()    
data = res.read()    
print (data.decode("utf-8"))   

郵便配達員のサンプル:

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

  • Postman リクエスト形式のサンプルは、以下からダウンロードできます。 こちら.
  • ダウンロードした zip ファイルを抽出し、抽出した json ファイルを Postman アプリケーションにインポートします。
  • サードパーティ方式のポストマン実装を使用した WordPress REST API 認証
  • 置き換える <アクセストークン> or < id_token > OAuth 2.0 プロバイダーから提供されたそれぞれのトークンを使用します。
  • 例:
  • サードパーティのメソッドを使用した 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. カスタムヘッダー

    この機能では、デフォルトの「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. HMAC を使用してトークンの高度な暗号化を有効にする

    この機能は、デフォルトで Base64 エンコード技術を使用してトークンが暗号化される基本認証方法で使用できますが、高度な機能を使用すると、非常に安全な HMAC 暗号化を使用してトークンを暗号化できます。

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

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

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

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

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

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

    7. ユーザー固有の API キー/トークンを作成する

    • この機能は、ランダムに生成されるユニバーサル キーのトークンではなく、ユーザー情報に応じてトークンを生成できる API キー メソッド内で利用できます。
    • ユニバーサル API キー/トークンを使用すると、ユーザー、投稿、ページなどの作成など、POST、PUT、DELETE のリクエスト メソッドを使用する特定の WordPress REST API に対するアクセス許可をユーザーが持つことができなくなり、操作を実行するには特定のユーザーのアクセス許可/ロールが必要になります。ユニバーサル キーはランダムに生成され、ユーザー ベースの説明が含まれないため、REST API リクエストを使用します。
    • したがって、このユーザーベースの API キー/トークン機能により、ユーザーは WordPress の POST、PUT、DELETE などのリクエスト メソッドを使用して REST API にアクセスできるようになります。これには、WordPress REST API リクエストが行われたときなどの操作を実行するためにユーザーの資格情報または特定のロールが必要です。ユーザーベースのキーを使用すると、ユーザーのロールが取得され、アクセス許可がある場合にのみ API へのアクセスが許可されます。
    • 例: 管理者および編集者の役割を持つユーザーのみが、投稿を作成/編集/削除する権限を持っています。
    • したがって、この API に対して投稿の作成/削除/編集のリクエストが行われた場合、API の応答は「この操作を実行することは許可されていません」という結果になります。
    • ここで、管理者または編集者の役割を持つユーザーに対して生成されたユーザーベースのトークンを使用してリクエストが行われた場合、そのユーザーのみがこの API にアクセスでき、API 呼び出しを介して操作 (作成/更新/削除) を実行できます。
    • この機能の使用方法:

    • ドロップダウンからユーザーを選択し、「API キーの作成」ボタンをクリックします。
    • WordPress REST API Basic認証方式ポストマン実装
    • 画面にポップアップが表示されます。OK ボタンをクリックしてトークンをコピーするだけです。
    • WordPress REST API Basic認証方式ポストマン実装
    • これで、ユニバーサル キーを使用して API リクエストを作成するのと同じように、このトークンを API リクエストで使用できるようになります。

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

推奨プラグイン

WordPress REST API 認証プラグインは、WordPress REST API への不正アクセスに対するセキュリティを提供します。 Basic 認証、API キー認証、OAuth 2.0 認証、JWT 認証などのさまざまな認証方法を提供します。

 5.9.2でテスト済み

このプラグインを使用すると、使いやすいグラフィカル インターフェイスやカスタム SQL クエリを使用して、データのフェッチ/変更/作成/削除を行うためのカスタム エンドポイント/REST ルートを作成できます。 また、このプラグインは、サードパーティのプラットフォームを使用して外部 API を WordPress サイトに統合する機能を提供します。

 5.9.2でテスト済み
こんにちは!

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

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

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

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