Cloud-native API Gateway は、コンシューマーを使用してルートと API の認証を有効にします。このトピックでは、Cloud-native API Gateway コンソールでコンシューマーを管理する方法について説明します。
コンシューマーの作成
Cloud-native API Gateway は 3 つの認証方式を提供します。
構成方法 | 説明 | 適用シナリオ |
API キー | クライアントは指定された方法でリクエストに認証情報を追加する必要があり、ゲートウェイは正当性と権限を検証します。この方法は、機密性の低い操作シナリオに適しています。JWT および AK/SK 認証よりもセキュリティが低くなります。認証情報の管理と保護に注意する必要があります。 | 軽量で迅速な統合シナリオや、セキュリティ要件が低いシナリオに適しています。 |
JWT | JSON Web トークン (JWT) は、クライアントとサーバー間で情報を安全に送信するための標準です。HMAC、RSA、または ECDSA 署名を使用して、情報が検証可能で信頼できることを保証します。JWT 認証は、ゲートウェイでの認証とアクセスの制御を実装できます。 | 分散システムおよびシングルサインオン (SSO) シナリオに適しています。 |
HMAC | HMAC アルゴリズムに基づく AK/SK 署名認証方式では、クライアントは API を呼び出すときに署名キーを使用してリクエストコンテンツの署名を計算し、検証のためにサーバーに署名を送信する必要があります。 | データ整合性と改ざん防止に対する要件が高いシナリオに適しています。 |
API キー認証に基づくコンシューマーの作成
Cloud-native API Gateway コンソールの [コンシューマー] ページに移動し、コンシューマーを作成するリージョンを選択します。
[コンシューマーの作成] をクリックします。[コンシューマーの作成] パネルで、[コンシューマー名] を設定し、認証方式として [API キー] を選択し、次の設定を完了します。
生成方法:
[システム生成]: システムが自動的に API キーの認証情報を生成します。
[カスタム]: API キーの認証情報と認証情報のソースを指定する必要があります。
認証情報 ([システム生成] が選択されている場合は不要): API キーの認証情報をカスタマイズします。
認証情報ソース:
リクエストから API キーを抽出する場所をゲートウェイに伝えます。ソースには次のものが含まれます。
[Authorization: Bearer <token>] (標準トークンフォーマット)
[カスタム HTTP ヘッダー] (例:
X-API-Key: your-key)[カスタムクエリパラメーター] (例:
?apikey=your-key)
JWT 認証に基づくコンシューマーの作成
Cloud-native API Gateway コンソールの [コンシューマー] ページに移動し、コンシューマーを作成するリージョンを選択します。
[コンシューマーの作成] をクリックします。[コンシューマーの作成] パネルで、[コンシューマー名] を設定し、認証方式として [JWT] を選択し、次の設定を完了します。
作成方法:
[ローカル設定] は、認証サービスとゲートウェイが同じクラスターまたはローカルエリアネットワーク (LAN) 内にあり、高いパフォーマンス要件と頻繁でないキー変更があるシナリオに適しています。
[リモートフェッチ] は、統合 ID センター (OAuth2、OpenID Connect など) を使用して JWT を発行するシナリオに適しており、動的なキー更新をサポートし、マルチテナントまたは本番環境に適しています。
キータイプ ([リモートフェッチ] が選択されている場合は不要):
[対称キー]: デフォルトの JWKS が生成されます。JWKS はコンシューマーによって異なります。デフォルトの JWKS には、トークンの暗号化または復号に使用されるキーが含まれています。
[非対称キー]: 完全な JWKS 構成を入力する必要があります。トークンは秘密鍵を使用して暗号化されます。ゲートウェイは JWKS の公開鍵に基づいて復号を実行します。
JWKS:
[ローカル設定] が選択されている場合、JWKS 構成を設定します。JWKS の仕様の詳細については、「JSON Web Key (JWK)」をご参照ください。
[リモートフェッチ] が選択されている場合、URL を設定します。システムは、ポート番号、タイムアウト、キャッシュ時間などの情報を自動的に解析して読み取ります。
重要URL はドメイン名である必要があり、IP アドレスであってはなりません。
JWT トークン: JWT トークン情報を設定します。
[タイプ]: トークンのタイプ。デフォルト値: HEADER。
[キー]: トークンの名前。
[プレフィックス]: トークンのプレフィックス。トークンを検証するために必要なパラメーターを設定します。デフォルトでは、トークンには Bearer プレフィックスが含まれ、Authorization Header に保存されます。例: Authorization: Bearer token。
[パススルーを有効にする]: このオプションを選択すると、トークンはバックエンドサービスに透過的に渡されます。
JWT ペイロード内のコンシューマー ID: コンシューマーを識別するために使用される JWT ペイロード内のキーと値。デフォルトでは、キーは uid で、値はランダムな文字列です。ビジネス要件に基づいて値を変更できます。次のコードは、JWT トークン内のペイロードの例です。
{ "uid": "11215ac069234abcb8944232b79ae711" }
HMAC 認証に基づくコンシューマーの作成
Cloud-native API Gateway コンソールの [コンシューマー] ページに移動し、コンシューマーを作成するリージョンを選択します。
[コンシューマーの作成] をクリックします。[コンシューマーの作成] パネルで、[コンシューマー名] を設定し、認証方式として [HMAC] を選択し、次の設定を完了します。
[システム生成]: システムが自動的に AccessKey ペアを生成します。
[カスタム]: AccessKey ペアを指定する必要があります。
コンシューマーの無効化
API Gateway コンソールにログインします。
左側のナビゲーションウィンドウで、[コンシューマー] をクリックします。上部のナビゲーションバーで、リージョンを選択します。
[コンシューマー] リストページで、対象のコンシューマーの [アクション] 列にある [無効化] をクリックします。確認ダイアログボックスで、[OK] をクリックします。
コンシューマーの削除
API Gateway コンソールにログインします。
左側のナビゲーションウィンドウで、[コンシューマー] をクリックします。上部のナビゲーションバーで、リージョンを選択します。
[コンシューマー] リストページで、対象のコンシューマーの [アクション] 列にある [削除] をクリックします。確認ダイアログボックスで、現在のコンシューマー名を入力し、[削除] をクリックします。