チュートリアル: JSON Web トークン (JWT) の検証
このチュートリアルでは、JSON Web トークン (JWT) を検証する REST API 定義を定義して実装する方法について説明します。
このチュートリアルについて
このチュートリアルでは、以下のレッスンを行います。
注 :Sandboxカタログは、 DataPower® Gateway (v5 compatible) または DataPower API Gateway 、あるいはその両方を使用するように設定する必要があります。 カタログの作成と設定を参照してください。
開始前に
また、以下の手順も行う。
- 「チュートリアル: JSON Web Token (JWT) の生成」 チュートリアルを完了します。 このチュートリアルでは、このチュートリアルで検証できる JSON Web トークンを生成します。 この検証 API をテストするには、この JWT が必要です。
JWT の検証
JSON Web トークン (JWT) を検証するための REST API を作成します。
この REST API を追加および定義するには、以下のステップを実行します。
- API Manager にログインします。
- ようこそ] ページで、 [APIと製品の開発] タイルをクリックします。

- クリックします。

- が選択されていることを確認してください。 OpenAPI 3.0 選択されていることを確認してください。
- 新しい OpenAPI を選択します。 「次へ」をクリックします。

- REST API 定義を作成するための適切な情報を入力します。

- 次へ をクリックします。
- セキュア画面を表示しない。 「次へ」をクリックします。

- 新規 API の作成中は、その進行状況が表示されます。 完了すると、「要約」が表示されます。 APIの編集をクリックします。

- 「設計」ページのサイド・バーで、「パス」を選択して「パス」パネルを表示します。
- 追加 をクリックします。

- パスの欄に 「/val 」と入力する。
- 追加 をクリックします。

- スクロールダウンします。 パラメータセクションで 、「追加」 をクリックします。

- パラメータ名フィールドに Authorization と入力します。
- Located In フィールドで header 。
- Enter Bearer <jwt> を入力して、 説明欄に一致させます。
- 必須を選択します。
- 「作成」 をクリックします。

- スクロールダウンします。 スキーマセクションで 「作成」 をクリックします

- Type フィールドで string 。
- 「作成」 をクリックします。

- パラメータを作成したら、 [保存] をクリックします。
- コンポーネント > レスポンスをクリックします。
- 追加 をクリックします。

- 「レスポンス名」 のフィールドには、 200 が自動的に入力されます。
- 「説明」の欄に 200 OK と入力してください。

- 応答を作成したら、 [保存] をクリックします。
- クリックゲートウェイ。
- 既存のプロキシまたは開始アクションにマウスカーソルを合わせ、ゴミ箱アイコンをクリックして削除します。

- 「変数の設定」アクションを処理フロー行にドラッグします。 構成パネルが自動的に開きます。
- 「アクションの追加」をクリックします。

- 「セット」フィールドに hs256-key と入力します。
- Type フィールドで string 。
- 値フィールドにJWKを入力します。 以下に一例を示します。 {
"alg": "HS256", "kty": "oct", "use": "sig", "k":
"o5yErLaE-dbgVpSw65Rq57OA9dHyaF66Q_Et5azPa-XUjbyP0w9iRWhR4kru09aFfQLXeIODIN4uhjElYKXt8n76jt0Pjkd2pqk4t9abRF6tnL19GV4pflfL6uvVKkP4weOh39tqHt4TmkBgF2P-gFhgssZpjwq6l82fz3dUhQ2nkzoLA_CnyDGLZLd7SZ1yv73uzfE2Ot813zmig8KTMEMWVcWSDvy61F06vs_6LURcq_IEEevUiubBxG5S2akNnWigfpbhWYjMI5M22FOCpdcDBt4L7K1-yHt95Siz0QUb0MNlT_X8F76wH7_A37GpKKJGqeaiNWmHkgWdE8QWDQ",
"kid": "hs256-key" }

- プロパティー・パネルを閉じます。 保存 をクリックします。
- 「JWT の検証」アクションを、処理フロー行の「set-variable」アイコンの後にドラッグします。 構成パネルが自動的に開きます。

- 「Verify Crypto JWK」の変数名フィールドに「 hs256-key 」と入力します。

- プロパティー・パネルを閉じます。 保存 をクリックします。
- 「GatewayScript」アクションを、「JWT の検証」アイコンの後の処理フロー行にドラッグします。 構成パネルが自動的に開きます。
- 以下のコードを入力します。
var apim = require('apim'); apim.setvariable('message.body',apim.getvariable('decoded.claims'));注: レスポンスには次のような警告が含まれることがあるが、これは無視してよい:警告このgatewayscriptポリシーは、古いAPIを移行するためだけのapimモジュールを使うべきではありません。
- プロパティー・パネルを閉じます。 保存 をクリックします。
- 「Catch の表示」オプションを必ず有効にして、「catch」領域が表示されるようにします。

- クリックでキャッチ。 プロパティー・パネルが開きます。
- デフォルトのキャッチを追加をクリックします。

- 「GatewayScript」ポリシー・アクションを Catch フロー行にドラッグします。
- 以下のコードを入力します。
var apim = require('apim'); apim.setvariable('message.body',apim.getvariable('jwt-validate.error-message'));
- プロパティー・パネルを閉じます。 保存 をクリックします。
REST API のテスト
注: クロスオリジンリソース共有(CORS)の制限により、 macOS Catalinaプラットフォーム上のChromeまたはSafariブラウザでは、アセンブリテストツールを使用できません
REST API をテストするには、有効な JWT が必要です。 このような JWT は、「チュートリアル: JSON Web Token (JWT) の生成」 で作成された API を起動することで取得できます。 REST API をテストするには、以下のステップを実行します。
API 定義の管理
これで、新しいAPIが正しく動作するようになったので、このAPIを管理することができる。 即時オプションを表示するには、以下のステップを実行します。
このチュートリアルで実行したこと
このチュートリアルでは、以下のアクティビティーを実行しました。
- JSON Web トークン (JWT) を検証する新しい API 定義を作成しました。
- 新しい API をテストしました。
