ヘッダーの設定
適用対象: すべての API Management レベル
set-header
ポリシーでは、既存の HTTP 応答ヘッダーまたは要求ヘッダーに値を割り当てるか、新しい応答ヘッダーまたは要求ヘッダーを追加します。
ポリシーを使用して、HTTP ヘッダーの一覧を HTTP メッセージに挿入します。 受信パイプラインに配置した場合、このポリシーは、ターゲット サービスに渡される要求の HTTP ヘッダーを設定します。 送信パイプラインに配置した場合、このポリシーは、ゲートウェイのクライアントに送信される応答の HTTP ヘッダーを設定します。
Note
ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 このポリシーの構成に役立つ、ガイド付きのフォーム ベース エディターがポータルに用意されています。 API Management ポリシーを設定または編集する方法について説明します。
ポリシー ステートメント
<set-header name="header name" exists-action="override | skip | append | delete">
<value>value</value> <!--for multiple headers with the same name add additional value elements-->
</set-header>
属性
Name | 説明 | 必要 | Default |
---|---|---|---|
exists-action | 対象のヘッダーが既に指定されている場合の操作を指定します。 この属性の値は次のいずれかに設定する必要があります。 - override - 既存のヘッダーの値を置き換えます。- skip - 既存のヘッダーの値を置き換えません。- append - 既存のヘッダーの値に値を追加します。- delete - 要求からヘッダーを削除します。override に設定した場合、同じ名前の複数のエントリを記載すると、すべてのエントリに従ってヘッダーが設定されます (複数回記載されます)。結果に設定されるのは記載した値のみです。 ポリシー式を使用できます。 |
いいえ | override |
name | 設定するヘッダーの名前を指定します。 ポリシー式を使用できます。 | はい | 該当なし |
要素
名前 | 説明 | 必須 |
---|---|---|
value | 設定するヘッダーの値を指定します。 ポリシー式を使用できます。 同じ名前のヘッダーが複数ある場合は、value 要素をさらに追加します。 |
いいえ |
使用法
- ポリシー セクション: inbound、outbound、backend、on-error
- ポリシー スコープ: グローバル、ワークスペース、製品、API、操作
- ゲートウェイ: クラシック、v2、従量課金、セルフホステッド、ワークスペース
使用上の注意
ヘッダーの複数の値が次のように CSV 文字列に連結されます。
headerName: value1,value2,value3
例外として、次のような値を持つ標準化されたヘッダーがあります。
- コンマを含む可能性がある (
User-Agent
、WWW-Authenticate
、Proxy-Authenticate
) - 日付を含む可能性がある (
Cookie
、Set-Cookie
、Warning
)。 - 日付を含む (
Date
、Expires
、If-Modified-Since
、If-Unmodified-Since
、Last-Modified
、Retry-After
)。
これらの例外の場合は、複数のヘッダー値が 1 つの文字列に連結されることはなく、次のように個別のヘッダーとして渡されます。例:
User-Agent: value1
User-Agent: value2
User-Agent: value3
次の制限事項が適用されます。
Server
ヘッダーの削除はサポートされていません。- ヘッダー:
Connection
、ContentLength
、KeepAlive
、TransferEncoding
は変更または削除できません。
例
ヘッダーの追加、既存のオーバーライド
<set-header name="some header name" exists-action="override">
<value>20</value>
</set-header>
ヘッダーの削除
<set-header name="some header name" exists-action="delete" />
バックエンド サービスにコンテキスト情報を転送する
次の例では、API レベルでポリシーを適用して、バックエンド サービスにコンテキスト情報を提供する方法を示します。
<!-- Copy this snippet into the inbound element to forward some context information, user id and the region the gateway is hosted in, to the backend service for logging or evaluation -->
<set-header name="x-request-context-data" exists-action="override">
<value>@(context.User.Id)</value>
<value>@(context.Deployment.Region)</value>
</set-header>
詳細については、ポリシー式およびコンテキスト変数に関する各ページを参照してください。
関連ポリシー
関連するコンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。
- チュートリアル:API を変換および保護する
- ポリシー ステートメントとその設定の一覧に関するポリシー リファレンス
- ポリシー式
- ポリシーの設定または編集
- ポリシー構成を再利用する
- ポリシー スニペットのリポジトリ
- Azure で Microsoft Copilot を使用してポリシーを作成する