の検索結果 :

×

会員登録 お問い合わせ

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

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



WordPress の REST API 認証

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

詳細を見る   

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


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

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

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

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

      4. JWT トークンの検証/認証が成功すると、要求されたリソースへのアクセスが許可されます。つまり、要求者はリソース/データへのアクセスを許可されます。トークンの検証に失敗した場合は、エラー応答が返されます。そのため、リソース データは保護され、許可時にアクセスできるようになり、セキュリティの問題は発生しません。


関連するユースケース:

  • WP REST API エンドポイントがソーシャル ログインまたは OAuth2.0/OpenID Connect アイデンティティ プロバイダーによって提供される JWT トークンを使用するのを防ぐ方法を教えてください。
  • OAuth/OpenID SSO ログイン フロー中にソーシャル ログイン/OAuth プロバイダーによって提供されるアクセス/ID トークンに基づいて、認証を実行してセキュリティを確保したり、WordPress の REST API エンドポイントへのアクセスを許可するための承認を実行したりするにはどうすればよいですか?




  • あなたの選択します。 認証方法 → サードパーティプロバイダー と追加 イントロスペクションエンドポイント OAuth/OpenID Connect プロバイダーによって提供されるをクリックします。 構成の保存.
  • サードパーティキー方式を使用したWP 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  >
    -H 'app-name:TheAppName'
    
  • チェックアウトします 開発者のドキュメント をご覧ください。

 
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>");
request.AddHeader = ("app-name", "TheAppName");
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>")
.addHeader = ("app-name", "TheAppName");
 .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>"
"app-name": "TheAppName"
},        
};

$.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>'
'app-name: TheAppName'
),

));          

$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>'
'app-name': 'TheAppName',
}
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 アプリケーションにインポートします。
  • サードパーティメソッドPostman実装を使用したWP REST API認証
  • 置き換える <アクセストークン> or < id_token > OAuth 2.0 プロバイダーから提供されたそれぞれのトークンを使用します。
  • 置き換える <アプリ名> それぞれの AppName に置き換えます。
  • 例:
  • サードパーティのメソッドを使用したWP REST API認証でPostmanのURLを実際のリソースに置き換える

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


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


それを構成する方法は?

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

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


2. カスタムヘッダー


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

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


それを構成する方法は?

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

3. REST APIを除外する


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


それを構成する方法は?

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

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


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


それを構成する方法は?

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

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


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


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

WP REST API 基本認証方法のPostman実装

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


この機能により、JWT トークンの JWT 署名の安全な署名が可能になり、JWT トークンのセキュリティがさらに強化され、署名はクライアント シークレット/証明書を使用してのみデコードできるようになります。つまり、署名は非公開であり、他の人には見えません。

WP REST API 基本認証方法のPostman実装

当社は HS2 と RS256 の 256 つの署名アルゴリズムをサポートしています。したがって、上記の画像に示すように、ドロップダウンから任意の署名アルゴリズムを選択できます。

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


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


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

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


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



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

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

サードパーティプロバイダーによる WordPress REST API

お困りですか?

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

ADFS_sso ×
こんにちは!

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

対応