logo

パレット - カラフルに🎨

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

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

Scroll

HTTP基本認証モジュールで基本認証をセットアップする

11/04/2025, by Ivan

JSON:APIでのCRUD操作の認証

JSON:APIを操作する際には、PostmanやcURLなどのツールを使用してリクエストを送信できます。デフォルトでは、これらのツールを通じて送信されるリクエストは、ユーザー認証をネイティブに管理しないため、「匿名」ユーザーからのものとして扱われます。その結果、特定のリソースへのアクセスは、Drupalサイトの匿名ユーザー用に設定された権限に基づいて制限される場合があります。

ただし、目的がJSON:APIを介して作成、更新、削除(CRUD)操作を行うことである場合、匿名アクセスだけでは不十分です。これらの操作には認証済みアクセスが必要です。Drupalは複数の認証方法をサポートしており、さまざまなcontribモジュールとコアモジュールで有効にできます。

最も一般的に使用される方法の1つは、Drupalコアに含まれるHTTP基本認証です。より高度なユースケースでは、Drupal REST & JSON API Authenticationのようなモジュールが、拡張された認証機能とカスタマイズオプションを提供し、アプリケーションのニーズに合わせてセキュリティモデルを調整できます。

認証済みリクエストを行う手順

  1. この例では、すべての操作が有効になっていることを確認します
    json-api
  2. HTTP基本認証モジュールを有効にします
    Enable module
     
  3. APIユーザー用のロールを作成します
    API user
  4. そのロールに必要な権限を付与します。 /admin/people/permissions/api_user
  5. この例では、 *Article*: Create new content 権限を付与するようにしてください
  6. APIユーザー権限を持つユーザーを作成します。 /admin/people/create
    Roles
  7. Postmanで認証を設定します。作成したばかりのアカウントを使用します
    postman
  8. Content-Typeヘッダー application/vnd.api+json
    Postman headers
  9. ボディを更新します:
    {
             "data": {
               "type": "node--article",
               "attributes": {
                 "title": "This page is created trough JSON:API",
                 "body": {
                   "value": "some body text",
                   "format": "plain_text"
                 }
               }
             }
            }
  10. リクエストを送信してレスポンスを確認します。ステータスコードが201なら、JSON:APIへの認証済みリクエストが成功し、articleタイプのノードが作成されたことになります
    content
     

    JSON:APIは、DrupalでのAPI構築プロセスを簡素化する強力で標準化された仕様です。Drupal 8以降でコアモジュールとして導入され、開発者は大規模なカスタム開発を行うことなく、一貫性のある明確に定義されたAPIを通じてコンテンツやデータを公開できます。

    JSON:APIモジュールを有効にするだけで、JSON:API仕様に準拠した構造化APIへ即座にアクセスできます。これにより、直感的なURLパターンと予測可能なレスポンス形式を使用して、Drupalサイトのコンテンツと簡単にやり取りできます。フロントエンドアプリケーション、統合、デカップリングアーキテクチャに最適です。

    より高度な機能とベストプラクティスを調べるには、Drupal JSON:API Module Documentationを参照してください。このドキュメントは、ページネーションフィルタリングソートファイルアップロードなどの機能に関する包括的なガイダンスを提供し、Drupalプロジェクト内でJSON:APIの可能性を最大限に引き出すのに役立ちます。