WordPress REST API 認証周りの詳しい解説

Cookie認証

WordPressでログインしますよね。それをAPIで実現するというやつです。Frond側のログインGUIを作成してWordpressにログインして記事の投稿などができるというやつです。認証機能に関してはあまり記事がないみたいですね。ないというよりも数多くの認証方法をサポートしているので、どれを選んでよいやら、どれを選んでどの方法にコミットしたらよいのかわからないといった感じです。
今現在でいいうとCookie認証が無難だと思います。プラグインなどでも数多くサポートしているのと Cookie自体が無くなったり仕様が変更になったりすることは近いうちにはなさそうだからです。Basic認証は多くの記事で書かれているようにあまり実践的ではありません。開発者や管理者が補助的に使うのがよいでしょう。

Application Passwords

かつてはREST APIに対して様々なプラグインが開発されましたがApplication Passwordsはwordpress 5.6あたりからコアソースとして統合されプラグインが不要になりました。もっともライトに始めるにはこれを使うのがおすすめです。むしろApplication Passwordsを使っているということさえ忘れてしまってよいのかもしれません。
Application Passwords
Application Passwordsの統合ガイド
ここら特に興味のある人だけ読めばOKです。

nonce

おしらくノンスとかナンスという読み方になると思いますが、江戸末期にはペルリだったけど今日はペリーだったり、つい数十年前はテニスではジュースだったものがデュースになっていたりといろいろあるので、ノンスだかナンスだかよくわかりません。フランス語語源でフランス語ではノンスと読むので、ここはnonce(ノンス)でいきましょう。
nonceはいわゆるCSRF対策のワンタイム・トークンです。通常ワンタイムなのですが、wordpressではデフォルトで24時間このトークン(nonce)を持続します。いちいち発行し、それを比較し、認証を行うので実践的にも24時間ぐらいの持続で十分セキュリティーは保つことができるだろうとは思います。(しかし、それが心配だったらカスタマイズで有効期限を調整することができます。)
基本的には何らかのクライアント(JSのAJAXとか)がREST APIにリクエストして、APIがレスポンスして、みたいな流れになります。

実際にやってみる

実際にやってみるのですが、テストだったら何でもよいというわけで、curlとかでやってみましょう。あるいはRESTクライアントソフトを使うのがよいと思います。私の場合は、vscodeにインストールできるRSET ClientやPostman、Insomniaなどを使うことが多いです。PHPのcurlとかでもよいです。

Postman
Insomnia

1. ユーザーを作成する



ここは基礎的なことを含めて管理画面から直接新規でユーザーを作成してみましょう。ユーザーから新規追加でできます。
テスト用のユーザーでよいので比較的適当でよいです。
作成が終わったらユーザーの一覧から該当ユーザーの編集に進んでください。「ユーザー USERNAME を編集」のページで管理画面の配色など細かい設定ができますが、そのページの一番下に、アプリケーションパスワードの項目があります。

  1. 新しいアプリケーションパスワード名を追加します。(例)test-client
  2. 新しいアプリケーションパスワードを追加ボタンを押して、パスワードを控えます。
VkSo efAc jU7D L44P cDrZ ihcd

と、4文字ごとにスペースが入っていますが、利用するときはこの半角を詰めてください。パスワードの発行は一回しかされないので、紛失した場合はアプリケーションパスワード名ごと削除して作り直しをしてください。


  • News

  • Categories

  • Tags

  • Archives

  • Page index