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

API Gateway:JWT認証の設定

最終更新日:Jan 09, 2025

JSON Webトークン (JWT) は、JSONオブジェクトの形式でクライアントとサーバー間で情報を安全に送信するために使用されます。 送信された情報は、ハッシュベースのメッセージ認証コード (HMAC) アルゴリズム、またはRivest-Shamir-Adleman (RSA) またはElliptic Curve Digital Signature algorithm (ECDSA) アルゴリズムの公開 /秘密鍵ペアを使用してJWTに署名できるため、検証され信頼されます。 JWTを使用してユーザーを認証し、アクセス制御を実行できます。

前提条件

  • あなたはJWTの基本的な理解を持っています。 詳細については、「JSON Webトークンの概要」をご参照ください。

  • 承認サービスがクラウドネイティブAPI Gatewayとどのように統合されているかを理解しています。 セキュリティを確保するために認証サービスによってトークンが発行され、トークンを検証するためにゲートウェイインスタンスに公開鍵が設定されます。

  • 秘密鍵と公開鍵が用意される。 秘密鍵は、トークンを発行するために認可サービスによって使用される。 公開鍵は、要求に含まれるトークンを検証するためにゲートウェイインスタンスによって使用される。

背景情報

クラウドユーザーに体系的なセキュリティソリューションを提供するために、cloud-native API Gatewayは、JWTに基づいてAPIへのアクセスを許可するメカニズムを提供します。 このメカニズムを使用して、セキュリティ設定をカスタマイズできます。

トークンベースの認証

クラウドネイティブAPI Gatewayは、API呼び出し元のIDを検証し、要求されたリソースを返すかどうかを判断します。 トークンはID認証に使用されます。 トークンが使用される場合、アプリケーションは、サーバ側でユーザ認証情報またはセッション情報を保持する必要はない。 これにより、ステートレスおよび分散webアプリケーション認証が実装され、アプリケーション拡張が容易になります。

サポートされる統合方法

認証ルールの作成

  1. クラウドネイティブAPI Gatewayコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。 上部のナビゲーションバーで、リージョンを選択します。

  3. [インスタンス] ページで、管理するゲートウェイインスタンスの名前をクリックします。

  4. 左側のナビゲーションツリーで、[セキュリティ管理] > [グローバル認証] を選択します。

  5. [グローバル認証] ページの左上隅にある [認証の作成] をクリックします。 [認証の作成] パネルで、パラメーターを設定し、[OK] をクリックします。

    パラメーター

    説明

    有効

    認証を有効にするかどうかを指定します。

    認証名

    カスタム認証サービスの名前を入力します。

    認証タイプ

    認証タイプを選択します。 デフォルトでは、JWTが選択されています。

    発行者

    JWTクレームの発行者を入力します。

    サブ

    JWTクレームの件名を入力してください。

    JWKS

    JWT公開キーを入力します。 例:

    {
        "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トークン

    JWTトークンを設定します。

    • Type: トークンの種類。 このパラメーターはHEADERに固定されています。

    • キー: 各トークンが格納されるリクエストヘッダーの名前。

    • Prefix: トークンのプレフィックス。 各トークンの検証に必要なパラメーターを設定します。 デフォルトでは、各トークンの先頭にはBearerが付いており、許可ヘッダーに格納されます (例: Authorization: Bearer <Content of a token>) 。

    • パススルーの有効化: このオプションを選択すると、トークンがバックエンドサービスに渡されます。

    権限付与

    承認方法。 有効な値: ホワイトリストおよびブラックリスト

    • ホワイトリスト: ホワイトリストで指定したホストドメイン名とパスを持つリクエストのみ、認証なしでゲートウェイインスタンスにアクセスできます。

    • ブラックリスト: ブラックリストで指定したホストドメイン名とパスを持つリクエストにのみ認証が必要です。

    [+ ルール条件] をクリックして、ホストドメイン名とパスを追加します。

    • ドメイン名: ゲートウェイインスタンスへのアクセスを必要とするホストドメイン名。

    • パス: ゲートウェイインスタンスへのアクセスを必要とするパス。

認証ルールの詳細を表示する

  1. クラウドネイティブAPI Gatewayコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[インスタンス] をクリックします。 上部のナビゲーションバーで、リージョンを選択します。

  3. [インスタンス] ページで、管理するゲートウェイインスタンスの名前をクリックします。

  4. 左側のナビゲーションツリーで、[セキュリティ管理] > [グローバル認証] を選択します。

  5. [グローバル認証] ページで、照会する認証ルールを見つけ、[操作] 列の [詳細] をクリックします。 表示されるページで、[基本情報] セクションと [認証設定] セクションの情報を表示し、[認証情報] セクションの情報を表示および管理できます。

    jwt鉴权.png

    権限付与ルールを作成するには、[権限付与情報] セクションの [権限付与情報の追加] をクリックします。 [権限情報の追加] ダイアログボックスで、[リクエストドメイン名] および [リクエストパス] パラメーターを設定します。

結果の検証

[グローバル認証] ページに移動します。 [グローバル認証] ページに認証ルールが表示されると、ルールが作成されます。

次のステップ

ゲートウェイインスタンスの認証ルールに対して次の操作を実行できます。

  • 認証ルールの有効化: [グローバル認証] ページで、管理する認証ルールを見つけ、[操作] 列の [有効化] をクリックします。

  • 認証ルールを無効にする: [グローバル認証] ページで、管理する認証ルールを見つけ、[操作] 列の [無効にする] をクリックします。

  • 認証ルールの変更: [グローバル認証] ページで、管理する認証ルールを見つけ、[操作] 列の [編集] をクリックします。

  • 認証ルールの削除: [グローバル認証] ページで、管理する認証ルールを見つけ、[操作] 列の [削除] をクリックします。

説明

無効化された認証ルールのみ削除できます。

関連ドキュメント

その他の認証メカニズムの詳細については、「概要」をご参照ください。