Looking for the plugin's configuration parameters? You can find them in the Basic Authentication configuration reference doc.
ユーザー名とパスワード保護があるサービスまたはルートにBasic Authenticationを追加します。Proxy-Authorization
とAuthorization
ヘッダーの有効な認証情報のプラグインチェック(この順序で)。
使用法
プラグインを使用するには、まず、コンシューマを作成して1つ以上の認証情報を関連付ける必要があります。コンシューマは、アップストリームサービスを利用する開発者またはアプリケーションを表します。
コンシューマを作成
既存のコンシューマオブジェクトへの認証情報を関連付ける必要があります。コンシューマは多数の認証情報を持つことができます。
コンシューマパラメータ:
パラメータ | 説明 |
---|---|
username セミオプション
|
コンシューマのユーザー名。このフィールドかcustom_id のいずれかを指定する必要があります。 |
custom_id セミオプション
|
コンシューマを別のデータベースにマップするために使用されるカスタム識別子。このフィールドかusername のいずれかを指定する必要があります。 |
このサービスでACLプラグインと許可リストも使用している場合、新しいコンシューマーを許可されたグループに追加する必要があります。詳細については、ACL:コンシューマの関連付けを参照してください。
認証情報を作成
コンシューマ認証情報パラメータ:
フィールド/パラメータ | 説明 |
---|---|
consumer |
認証情報を関連付けるためのコンシューマエンティティのid またはusername プロパティ。 |
username |
ベーシック認証の認証情報で使用するユーザー名。 |
password |
ベーシック認証の認証情報で使用するパスワード。 |
認証情報の使用
認証ヘッダーはbase64でエンコードされている必要があります。たとえば、認証情報でユーザー名としてAladdin
、パスワードとしてOpenSesame
が使用される場合、フィールド値はAladdin:OpenSesame
のbase64エンコーディングまたはQWxhZGRpbjpPcGVuU2VzYW1l
となります。
Authorization
(またはProxy-Authorization
) ヘッダーは次のように表示される必要があります。
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l
ヘッダーを使用してリクエストを行います。
curl http://kong:8000/{PATH_MATCHING_CONFIGURED_ROUTE} \
-H 'Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l'
gRPCクライアントもサポートされています。
grpcurl -H 'Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l' ...
アップストリームヘッダー
クライアントが認証されると、プラグインはアップストリームサービスにプロキシする前にリクエストへいくつかのヘッダーを追加し、以下のコードでコンシューマを識別できるようにします。
-
X-Consumer-ID
: Kong内のコンシューマのID。 -
X-Consumer-Custom-ID
: コンシューマのcustom_id
(設定されている場合)。 -
X-Consumer-Username
: コンシューマのusername
(設定されている場合)。 -
X-Credential-Identifier
: 認証情報の識別子(コンシューマがanonymous
コンシューマでない場合にのみ)。 -
X-Anonymous-Consumer
: 認証に失敗した場合はtrue
に設定され、代わりにanonymous
コンシューマが設定されます。
この情報を利用して、追加のロジックを実装することができます。X-Consumer-ID
値を使用してKong Admin APIのクエリを実行し、コンシューマについての詳細な情報を取得できます。
basic-auth認証情報を介したページ番号付け
次のリクエストを使用して、すべてのコンシューマのbasic-auth認証情報を開始ページ番号を付けることができます。
次のエンドポイントを使用して、コンシューマ別にリストをフィルタリングできます。
username
またはid
: 認証情報が一覧表示される必要のあるコンシューマのユーザー名またはID。
認証情報に関連付けられているコンシューマを取得
次のリクエストを使用して、basic-auth認証情報に関連するコンシューマを取得するのは可能です。
username or id
:関連付けられたコンシューマを取得するbasic-auth認証情報のid
またはusername
プロパティ。ここで許可されるusername
は、コンシューマのusername
プロパティでは ない ことにご留意ください。