logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll

REST API Authentication モジュールで基本認証(Basic Authentication)をセットアップする

11/04/2025, by Ivan

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 REST API 認証

Drupal で Basic Authentication 方式を設定する手順:

  • より理解しやすくするため、REST API を使用して Drupal のノードを取得するための Basic Authentication を追加する例を取り上げます。
  • 注意: Drupal の /node/{node} API は、Drupal ノードに関する情報を取得するために使用されます。

次のように API を有効にし、メソッドと操作を割り当てます:

  • 最初のステップは、API を有効にし、その API で許可されるメソッドと操作を割り当てることです。これは REST UI モジュールを使用して行うか、設定を直接変更することもできます。
  •  REST UI モジュールを使用して API を有効にするには、REST UI モジュールの「設定(Configure)」ボタンをクリックします(下図参照)

    Rest UI

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

    REST GET

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

    REST API 基本認証

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/json

    CURL リクエスト形式-
    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 リクエストの画像も参照してください:

    REST API 認証

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

Basic 認証

  • レスポンスでエラーが発生した場合は、以下の表でエラーの説明と対処方法を確認できます。

エラー

説明

MISSING_AUTHORIZATION_HEADER

API リクエストで Authorization ヘッダーを送信しない場合、または何らかの理由でサーバーによって削除された場合にこのエラーが発生します。

例:
{
  "status": "error",
  "error": "MISSING_AUTHORIZATION_HEADER",
  "error_description": "Authorization header not received."
}

INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE

Authorization ヘッダーを送信したが有効な形式でない場合にこのエラーが発生します。
例:
{
  "status": "error",
  "error": "INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE",
  "error_description": "Authorization header must be the type of Basic Authentication."
}

USER_NAME_MISSING

モジュールが API 呼び出しでユーザー名を見つけられない場合にこのエラーが発生します。

例:
{
  "status": "error",
  "error": "USER_NAME_MISSING",
  "error_description": "Username Not Found"
}

INVALID_CREDENTIALS

ユーザー名またはパスワードのいずれかが正しくない場合にこのエラーが発生します。

例:
{
  "status": "error",
  "error":        "INVALID_CREDENTIALS",
  "error_description": "Invalid username or password."
}