JSON Web トークン (JWT) は、クライアントとサーバー間で情報を安全に送信するための標準です。この情報は JSON オブジェクトとしてエンコードされ、デジタル署名されているため信頼できます。JWT は、HMAC などのアルゴリズム、または RSA や ECDSA のような公開鍵/秘密鍵ペアを使用して署名できます。クラウドネイティブゲートウェイで JWT 認証を使用すると、ID を検証し、サービスへのアクセスを制御できます。
前提条件
-
JWT 標準に関する基本的な知識があること。詳細については、「JSON Web トークンの概要」をご参照ください。
-
クラウドネイティブゲートウェイがサポートする統合メソッド (独自のトークンを発行し、ゲートウェイで公開鍵を設定してリクエストの署名を検証する) を理解していること。
-
トークンの生成と検証に使用する秘密鍵と公開鍵を準備していること。秘密鍵は権限付与サービスによる JWT への署名に使用されます。公開鍵は、リクエスト内のトークンの署名を検証するためにクラウドネイティブゲートウェイで設定されます。
背景情報
クラウドネイティブゲートウェイは、包括的なセキュリティソリューションを提供します。JWT 認証機能を使用すると、JSON Web トークンに基づいて API へのアクセスを権限付与できます。これにより、セキュリティ設定を詳細に制御できます。
トークンベース認証
クラウドネイティブゲートウェイを介して API を公開する場合、リクエスターを識別し、リクエストされたリソースにアクセスする権限を検証する方法が必要です。トークンは、この認証に使用される認証情報です。トークンベース認証を使用すると、アプリケーションはサーバーにユーザー認証やセッション情報を保存する必要がありません。これにより、ステートレスで分散型の Web アプリケーションが可能になり、スケーリングが簡素化されます。
サポートされる統合メソッド

認証の作成
-
MSE コンソールにログインします。
-
左側のナビゲーションウィンドウで、Cloud-Native Gateway > ゲートウェイリスト を選択します。上部のナビゲーションバーで、リージョンを選択します。
-
ゲートウェイリスト ページで、対象ゲートウェイの ID をクリックします。
-
左側のナビゲーションウィンドウで、Security Management > Global Authentication を選択します。
-
Global Authentication ページで、左上隅にある Create Authentication をクリックします。パラメーターを設定し、OK をクリックします。
パラメーター
説明
Authentication Name
認証ルールのカスタム名。
Authentication Type
認証のタイプ。デフォルトで JWT が選択されています。
Issuer
JWT を発行したプリンシパル。トークン内の
iss(発行者) クレームに対応します。Sub
JWT の主題であるプリンシパル。トークン内の
sub(主題) クレームに対応します。JWKS
JWT 署名の検証に使用される公開鍵を含む JSON Web Key Set (JWKS)。フォーマットは有効な JWKS オブジェクトである必要があります。例:
{ "keys":[ { "e":"AQAB", "kid":"DHFbpoIUqrY8t2zpA2qXfCmr5VO5ZEr4RzHU_-envvQ", "kty":"RSA", "n":"xAE7eB6qugXyCAG3yhh7pkDkT65pHymX- P7KfIupjf59vsdo91bSP9C8H07pSAGQO1MV_xFj9VswgsCg4R6otmg5PV2 He95lZdHtOcU5DXIg_pbhLdKXbi66Gl VeK6ABZOUW3WYtnNHD-91gVuoeJT_DwtGGcp4ignkgXfkiEm4sw- 4sfb4qdt5oLbyVpmW6x9cfa7vs2WTfURiCrBoUqgBo_-4WTiULmmHSG ZHOjzwa8WtrtOQGsAFjIbno85jp6MnGGGZ PYZbDAa_b3y5u-YpW7ypZrvD8BgtKVjgtQgZhLAGezMt0ua3D RrWnKqTZ0BJ_EyxOGuHJrLsn00fnMQ" } ] }JWT Token
受信リクエストからトークンを抽出する方法を設定します。
-
Type:リクエスト内のトークンの場所。デフォルト値はヘッダーです。
-
キー:トークンを含むヘッダーまたはクエリパラメーターの名前。
-
プレフィックス:トークンの前に付加される文字列。デフォルトでは、ゲートウェイはトークンが
AuthorizationヘッダーにBearerプレフィックス付きで存在することを想定します。例:Authorization: Bearer token。 -
Enable Passthrough:トークンをバックエンドサービスに渡すかどうかを指定します。このオプションを選択すると、元のトークンヘッダーまたはパラメーターが転送されます。
Authorization
権限付与モード。Whitelist と Blacklist の両方のモードがサポートされています。
-
ホワイトリスト:ホワイトリストで指定したホストとパスへのリクエストは、認証をバイパスできます。他のすべてのリクエストには認証が必要です。
-
ブラックリスト:ブラックリストで指定したホストとパスへのリクエストには、認証が必要です。他のすべてのリクエストは認証をバイパスできます。
+ ルール条件 をクリックして、リクエストドメイン名とリクエストパスを設定します。
-
リクエストドメイン名:リクエストドメイン名 (ホスト)。
-
リクエストパス:リクエストパス。
-
認証詳細の表示
-
MSE コンソールにログインします。
-
左側のナビゲーションウィンドウで、Cloud-Native Gateway > ゲートウェイリスト を選択します。上部のナビゲーションバーで、リージョンを選択します。
-
ゲートウェイリスト ページで、対象ゲートウェイの ID をクリックします。
-
左側のナビゲーションウィンドウで、Security Management > Global Authentication を選択します。
-
Global Authentication ページで、対象の認証ルールを見つけ、Actions 列の Details をクリックします。詳細ページには、ルールの Basic Information と Authentication Configuration が表示されます。また、その Authorization Information を管理することもできます。
認証設定 セクションには、発行者、主題、タイプ (例:ヘッダー)、プレフィックス (例:Bearer)、パススルーを有効にする スイッチ、キー (例:Authorization)、JWKS などのフィールドが表示されます。権限付与情報 セクションでは、権限付与モードを切り替えたり、既存の権限付与ルールのテーブルを リクエストドメイン名 と リクエストパス とともに表示したりできます。
Authorization Information セクションで、Add Authorization Information をクリックします。表示されるダイアログボックスで、Request Domain Name と Request Path を入力して、新しい権限付与ルールを追加します。
結果の確認
Global Authentication ページに戻ります。新しい認証ルールがリストに表示されていれば、正常に作成されています。
関連操作
認証ルールを管理するために、次の操作も実行できます:
-
認証ルールの有効化: Global Authentication ページで、対象のルールを見つけ、Actions 列の 有効化 をクリックします。これにより、ルールがアクティブになります。
-
認証ルールの無効化: Global Authentication ページで、対象のルールを見つけ、Actions 列の Close をクリックします。これにより、ルールが非アクティブになります。
-
認証ルールの編集: Global Authentication ページで、対象のルールを見つけ、Actions 列の Edit をクリックして、その設定を変更します。
-
認証ルールの削除: Global Authentication ページで、対象のルールを見つけ、Actions 列の Delete をクリックして、ルールを完全に削除します。
認証ルールを削除する前に、まず無効化する必要があります。
関連ドキュメント
他の認証メカニズムについては、「グローバル認証」をご参照ください。