すべてのプロダクト
Search
ドキュメントセンター

API Gateway:Basic-auth

最終更新日:Sep 10, 2026

basic-auth プラグインは、HTTP Basic 認証標準に基づいてリクエストを認証および認可します。

プラグインタイプ

認証および認可

フィールド

認証設定

フィールド

データ型

必須

デフォルト値

説明

consumers

オブジェクトの配列

はい

-

リクエストの認証に使用するコンシューマー (サービス呼び出し元) です。

global_auth

ブール値

いいえ (インスタンスレベルで設定する場合のみ必須)

-

インスタンスレベルでのみ設定できます。true に設定すると、認証はグローバルに適用されます。false に設定すると、認証は設定済みのドメイン名とルートにのみ適用されます。設定しない場合、下位互換性のため、ドメイン名またはルートが設定されていないときに限り、認証がグローバルに適用されます。

consumers 内のフィールド:

フィールド

データ型

必須

デフォルト値

説明

credential

文字列

はい

-

コンシューマーのアクセス認証情報です。

name

文字列

はい

-

コンシューマー名です。

(オプション) 認可設定

フィールド

データ型

必須

デフォルト値

説明

allow

文字列の配列

ルートまたはドメイン名レベルで設定する場合に必須

-

ルートレベルまたはドメイン名レベルでのみ設定可能です。設定された条件に一致するリクエストに対し、アクセスを許可するコンシューマーを指定します。

重要
  • 認可設定と認証設定は、同一ルール内で共存できません。

  • 認証されたリクエストでは、呼び出し元を識別するために X-Mse-Consumer フィールドがリクエストヘッダーに追加されます。

例

認証のグローバル設定とルートへの認可設定

この例では、ゲートウェイの特定のルートまたはドメインに対して Basic 認証と認可を有効にします。

説明
  • 認証情報内のユーザー名とパスワードはコロン (:) で区切ります。

  • credential の値は一意にする必要があります。

次のプラグイン設定をインスタンスレベルに適用します:

global_auth: false
consumers:
- credential: 'admin:123456'
  name: consumer1
- credential: 'guest:abc'
  name: consumer2

次のプラグイン設定を route-a および route-b ルートに適用します:

allow:
- consumer1

次のプラグイン設定を *.example.com および test.com ドメイン名に適用します:

allow:
- consumer2
説明
  • この例の route-a および route-b ルートは、ゲートウェイのルート作成時に指定したものです。クライアントリクエストがいずれかのルートに一致した場合、name が consumer1 である呼び出し元にゲートウェイへのアクセスを許可します。それ以外の呼び出し元にはゲートウェイへのアクセスを許可しません。

  • この例の *.example.com および test.com ドメイン名は、リクエスト内のドメイン名とのマッチングに使用します。クライアントリクエストがいずれかのドメイン名に一致した場合、name が consumer2 である呼び出し元にゲートウェイへのアクセスを許可します。それ以外の呼び出し元にはゲートウェイへのアクセスを許可しません。

これらの設定では、次のリクエストが許可されます:

リクエストでユーザー名とパスワードを指定します。

# この例では、リクエスト内の route-a が一致しています。
# curl コマンドの -u パラメーターを使用してユーザー名とパスワードを指定します。
curl -u admin:123456  http://xxx.hello.com/test
# ユーザー名とパスワードが Base64 エンコードされた Authorization リクエストヘッダーを直接指定することもできます。
curl -H 'Authorization: Basic YWRtaW46MTIzNDU2'  http://xxx.hello.com/test

認証に成功すると、呼び出し元を識別するために X-Mse-Consumer フィールドがリクエストヘッダーに追加されます。この例では、値は consumer1 です。

これらの設定では、次のリクエストが拒否されます:

  • リクエストに認証情報が指定されていないため、HTTP ステータスコード 401 が返されます。

    curl  http://xxx.hello.com/test
  • ユーザー名またはパスワードが無効なため、HTTP ステータスコード 401 が返されます。

    curl -u admin:abc  http://xxx.hello.com/test
  • 認証された呼び出し元にアクセス権限がないため、HTTP ステータスコード 403 が返されます。

    # consumer2 という名前のコンシューマーは、route-a の許可リストに含まれていません。
    curl -u guest:abc  http://xxx.hello.com/test

ゲートウェイでの認証の有効化

次の設定を適用して、インスタンスレベルの Basic 認証を有効にします。以降、すべてのリクエストで認証が必要になります。

global_auth: true
consumers:
- credential: 'admin:123456'
  name: consumer1
- credential: 'guest:abc'
  name: consumer2

エラーコード

HTTP ステータスコード

エラーメッセージ

理由

401

Request denied by Basic Auth check. No Basic Authentication information found.

リクエストに認証情報が指定されていません。

401

Request denied by Basic Auth check. Invalid username and/or password.

リクエスト内の認証情報が無効です。

403

Request denied by Basic Auth check. Unauthorized consumer.

呼び出し元にアクセス権限がありません。