2.23.7.3. 認証ヘッダー


リクエストには、authorization ヘッダーに app_id および app_key が含まれます。最後に出力される値が 1 つまたは 2 つある場合は、app_key を割り当てることができます。

ここでの解決は、最後に出力された 1 つまたは 2 つの出力がある場合は app_key を割り当てます。

authorization ヘッダーは承認の種類で値を指定し、その値は Base64 としてエンコードされます。つまり、値を空白文字で分割し、2 番目の出力を取得して、コロン (:) をセパレーターとして使用して再度分割できます。たとえば、app_id:app_key という形式を使用する場合、ヘッダーは以下の credential の例のようになります。

aladdin:opensesame:  Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

以下の例のように、小文字のヘッダーフィールド名を使用する必要があります。

apiVersion: extensions.istio.io/v1alpha1
kind: WasmPlugin
metadata:
  name: <threescale_wasm_plugin_name>
spec:
# ...
    services:
# ...
      credentials:
        app_id:
          - header:
              keys:
                - authorization
              ops:
                - split:
                    separator: " "
                    max: 2
                - length:
                    min: 2
                - drop:
                    head: 1
                - base64_urlsafe
                - split:
                    max: 2
        app_key:
          - header:
              keys:
                - app_key
# ...

前述のユースケースの例は、authorization のヘッダーを確認します。

  1. これは文字列の値を取り、スペースで分割し、credential-type および credential 自体の少なくとも 2 つの値を生成することを確認してから、credential-type をドロップします。
  2. 次に、必要なデータが含まれる 2 番目の値をデコードし、最初の app_id の後にもしあれば app_key が含まれる操作スタックとなるように、コロン (:) 文字を使用して分割します。

    1. app_key が認証ヘッダーに存在しない場合は、特定のソースがチェックされます (この場合は、キー app_key のヘッダーなど)。
  3. credentials に追加の条件を追加するには、Basic 認証を許可します。ここで、app_idaladdin もしくは admin、または長さが 8 文字以上の任意の app_id になります。
  4. app_key には値が含まれ、以下の例のように最小で 64 文字を指定する必要があります。

    apiVersion: extensions.istio.io/v1alpha1
    kind: WasmPlugin
    metadata:
      name: <threescale_wasm_plugin_name>
    spec:
    # ...
        services:
    # ...
          credentials:
            app_id:
              - header:
                  keys:
                    - authorization
                  ops:
                    - split:
                        separator: " "
                        max: 2
                    - length:
                        min: 2
                    - reverse
                    - glob:
                      - Basic
                    - drop:
                        tail: 1
                    - base64_urlsafe
                    - split:
                        max: 2
                     - test:
                        if:
                          length:
                            min: 2
                       then:
                          - strlen:
                              max: 63
                          - or:
                              - strlen:
                                  min: 1
                              - drop:
                                  tail: 1
                    - assert:
                      - and:
                        - reverse
                        - or:
                          - strlen:
                              min: 8
                          - glob:
                            - aladdin
                            - admin
    # ...
  5. authorization ヘッダーの値を選択したら、タイプが上部に配置されるようにスタックを逆にして Basic credential-type を取得します。
  6. glob マッチを実行します。検証し、認証情報がデコードされ、分割されると、スタックの下部に app_id を取得し、上部に app_key を取得する可能性があります。
  7. test: を実行します。スタックに 2 つの値がある場合は、app_key が取得されたことになります。

    1. app_id および app_key を含め、文字列の長さが 1 から 63 文字になるようにします。キーの長さがゼロの場合は破棄し、キーが存在しないものとして続行します。app_id のみがあり、app_key がない場合、不明なブランチは、テストに成功し、評価が続行されます。

最後の操作は assert で、スタックに副作用がないことを示します。その後、スタックを変更できます。

  1. app_id が最上部になるように、スタックを逆にします。

    1. app_key が存在するかどうかで、スタックを逆にすると、app_id が上部になります。
  2. and を使用して、テスト間でスタックの内容を保持します。

    次に、以下のいずれかの方法を使用します。

    • app_id に 8 文字以上の文字列が設定されていることを確認してください。
    • app_idaladdin または admin と一致していることを確認します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る