REST API Authentication モジュールで基本認証(Basic Authentication)をセットアップする
Basic Authentication(基本認証)は、非常にシンプルで分かりやすい認証方法です。クライアントは、Drupal サイトのユーザー名とパスワードを base64 エンコードした Authorization ヘッダーを含む HTTP リクエストを送信します。
Basic Authentication では、 miniOrange API authentication モジュールがまずユーザーを Drupal のユーザー名とパスワードで認証します。ユーザーが認証された場合のみ、その操作を実行できます。このモジュールは Drupal 7、Drupal 8、Drupal 9、Drupal 10、Drupal 11 に対応しています。
セットアップ動画:
前提条件:ダウンロードとインストール:
- Drupal REST & JSON API Authentication モジュールをダウンロードしてインストールします。
- REST UI: このモジュールは、REST モジュールを設定するためのユーザーインターフェースを提供します。
- Drupal サイトの「機能拡張(Extend)」セクション (/admin/modules) から、次の Web サービスモジュールを有効にします:
- JSON: API
- REST UI
- RESTful Web Services
- Serialization

Drupal で Basic Authentication 方式を設定する手順:
- より理解しやすくするため、REST API を使用して Drupal のノードを取得するための Basic Authentication を追加する例を取り上げます。
- 注意: Drupal の /node/{node} API は、Drupal ノードに関する情報を取得するために使用されます。
次のように API を有効にし、メソッドと操作を割り当てます:
- 最初のステップは、API を有効にし、その API で許可されるメソッドと操作を割り当てることです。これは REST UI モジュールを使用して行うか、設定を直接変更することもできます。
- REST UI モジュールを使用して API を有効にするには、REST UI モジュールの「設定(Configure)」ボタンをクリックします(下図参照)

- この例では、 コンテンツ(Content) セクションにある /node/{node} API を有効にします。その API の前にある 有効(Enable) オプションを使用して有効にします。

- ここではノード情報を取得することが目的なので、以下の設定を選択します:
- メソッド: GET
- 形式: json
- 認証プロバイダー: rest_api_authentication.
- これにより、miniOrange REST API Authentication モジュールが API を認証できるようになります。続行するには、 設定の保存(Save Configuration) ボタンをクリックします。

Basic Authentication を有効にする手順:
- このステップでは、 Basic Authentication を API Authentication メソッドとして設定します。そのためには、REST API Authentication モジュールの API Authentication タブに移動してください (/admin/config/people/rest_api_authentication/auth_settings)
- Enable Authentication(認証を有効にする) チェックボックスを選択し、[設定] の上にある 保存(Save) をクリックします。
- Save Settings(設定の保存) ボタンの下で Basic Authentication を選択し、 select method(メソッドを選択) ボタンをクリックします。
これで完了です!!!
では、Basic Authentication を使用した API 呼び出しでノード情報を取得してみましょう。
例:
- Drupal でノード情報を取得するには、ユーザーの Drupal ユーザー名とパスワードを含む GET リクエストを行う必要があります。ユーザー名とパスワードの値は base64 エンコード形式でなければなりません。 呼び出しを行う際は、以下の形式を参照してください。
リクエスト: GET <your_drupal_base_url> /node/{node}?_format=json
ヘッダー:
Authorization: Basic base64encoded <username:password>
Accept: application/json
Content-Type: application/jsonCURL リクエスト形式-
curl --location --request GET 'drupal_base_url/node/1?_format=json' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic base64encoded <username:password'>
- 以下の Postman リクエストの画像も参照してください:

- リクエストが成功すると、作成したノード情報が返されます(下の画像を参照してください)。

- レスポンスでエラーが発生した場合は、以下の表でエラーの説明と対処方法を確認できます。
|
エラー |
説明 |
|
MISSING_AUTHORIZATION_HEADER |
API リクエストで Authorization ヘッダーを送信しない場合、または何らかの理由でサーバーによって削除された場合にこのエラーが発生します。 例: |
| INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE |
Authorization ヘッダーを送信したが有効な形式でない場合にこのエラーが発生します。 |
| USER_NAME_MISSING |
モジュールが API 呼び出しでユーザー名を見つけられない場合にこのエラーが発生します。 例: |
| INVALID_CREDENTIALS |
ユーザー名またはパスワードのいずれかが正しくない場合にこのエラーが発生します。 例: |