APIデプロイメントにポリシーを追加する
-
Security > API Security > Policies に移動します。
-
Add をクリックします。
-
ポリシーグループの名前を指定します。
-
リストから Deployment を選択します。
-
ポリシーを設定する Upstream Service をリストから選択します。
-
Add をクリックして、トラフィックセレクターとポリシータイプを選択します。トラフィックセレクター - トラフィック選択基準には、APIリソースパスまたはパスプレフィックス、メソッド、およびポリシーが含まれます。トラフィック選択基準を指定するには、次のいずれかのオプションを使用できます。
-
APIリソース – ポリシーを適用するAPIリソースとそのメソッドを選択します。キーワードでAPIリソースとメソッドを検索できます。
この例では、POSTメソッドを持つ/userのAPIリソースが一覧表示されています。 -
カスタムルール – このタブでは、カスタムパスプレフィックスと複数のメソッドを指定できます。設定されたポリシーは、APIトラフィック選択のカスタムルールに一致する受信APIリクエストに適用されます。
この例では、No-Auth ポリシーは、/billプレフィックスとGETメソッドを持つ API リソースに適用されます。
ポリシーで、選択したAPIリソースとメソッドに適用するポリシーをリストから選択します。各ポリシーの詳細については、ポリシーの種類を参照してください。 -
-
オプションで、ポリシーの種類を移動して優先順位を設定できます。優先順位が高いポリシーの種類が最初に適用されます。
-
ポリシーを追加するには、保存をクリックします。ポリシーをすぐに適用する場合は、保存して適用をクリックします。
ポリシーの種類
認証と認可
No-Auth
Auth-Basic
OAuth
-
JWKS URI - JWT (JSON Web Token) 検証用のJWK (JSON Web Key) を持つエンドポイントのURL
-
Issuer - 認証サーバーのID (通常はURL)。
-
Audience - トークンが適用されるサービスまたはアプリケーションのID。
-
Claims to save - アクセス権限は、一連のクレームと期待値として表されます。クレーム値をCSV形式で指定します。
-
Introspect URI - 認証サーバーのイントロスペクションエンドポイントURLです。このURLは、不透明なアクセストークンを検証するために使用されます。これらのトークンの詳細については、「不透明なアクセストークンのOAuth設定」(/ja-jp/citrix-adc/current-release/aaa-tm/authentication-methods/oauth-authentication/api-authentication-with-adc.html#oauth-configuration-for-opaque-access-tokens)を参照してください。Introspect URI を指定した後、認証サーバーにアクセスするための Client Id と Client Secret を指定します。
-
Allowed algorithms - このオプションを使用すると、受信トークン内の特定のアルゴリズムを制限できます。デフォルトでは、サポートされているすべてのメソッドが許可されています。ただし、選択したトラフィックに必要なアルゴリズムを確認できます。
承認
-
クレーム名
-
クレーム値
Auth-Basicのいずれかです。
レート制限
-
HTTP Header Name - APIリクエストを識別するためにトラフィックをフィルタリングするトラフィックセレクターキーです。そして、レート制限ポリシーは、そのようなAPIリクエストにのみ適用され、監視します。
-
Header Values - これらのヘッダー値は、指定されたヘッダー名に対してカンマで区切られます。
-
Threshold - 指定された間隔で許可されるリクエストの最大数。ヘッダー値を指定した場合、このしきい値は各ヘッダー値に適用されます。例1:ヘッダー名
x-api-keyに対してヘッダー値 ("key1","key2","key3") を指定し、しきい値を80に設定すると、設定されたしきい値は各ヘッダー値に適用されます。例2:各ヘッダー値に異なるしきい値を指定したい場合は、同じHTTPヘッダー名を使用して、個別のレート制限ポリシーを作成します。-
ポリシー1: ヘッダー名
x-api-keyに対してヘッダー値 ("key1","key2") を指定し、しきい値を80に設定します。 -
ポリシー2: ヘッダー名
x-api-keyに対してヘッダー値 ("key3") を指定し、しきい値を30に設定します。
ヘッダー値を指定しない場合、しきい値は指定されたHTTPヘッダー名に適用されます。 -
-
Time slice - マイクロ秒で指定された間隔。この間隔中、リクエストは設定された制限に対して監視されます。デフォルトでは、1000マイクロ秒(1ミリ秒)に設定されています。
-
Limit type - レート制限ポリシーを適用する方法のモード。バーストまたはスムーズ制限タイプを選択できます。
-
Action - しきい値を超えるトラフィックに対して実行するアクションを定義します。次のいずれかのアクションを指定できます。
-
DROP: 設定されたトラフィック制限を超えるリクエストをドロップします。
-
RESET: リクエストの接続をリセットします。
-
REDIRECT: トラフィックを設定されたredirect_urlにリダイレクトします。
-
RESPOND: 標準応答で応答します (
429 Too many requests)。
-
WAF
ボット
ヘッダー書き換え
-
HTTP Header Name: リクエストヘッダーで変更したいフィールド名。例:
Host -
Header value: オプション。指定されたヘッダー名で変更したい値の文字列。例:
sample.com -
ヘッダーの新しい値: 指定されたヘッダー値を置き換える新しい値です。ヘッダー値が指定されていない場合、受信した値をHTTPヘッダー名に指定された値で置き換えます。例:
example.com
Hostフィールドでsample.comをexample.comに置き換えます。
URIパスの書き換え
-
パスセグメントの置き換え – このアクションタイプを選択すると、以下を指定します。
-
現在のパスセグメント – 置き換えたいパスセグメントです。
-
新しいパスセグメント – 現在のパスセグメントのみを置き換える新しいパスセグメントです。
たとえば、URIパスのロケールを英語から中国語に変更するには、現在のパスセグメントに/ja-jp/を指定します。そして、新しいパスセグメントに/zh-zhを指定します。これにより、パスセグメントのみが置き換えられ、残りのURIパスは保持されます。 -
-
フルパスの置き換え – このアクションタイプは、APIリクエストとレスポンスのURIパスを指定されたパスで完全に置き換えます。新しいパスセグメントに
/example.htmlを指定すると、APIリクエストまたはレスポンスのURIパスは指定されたパスに変更されます。 -
パスセグメントの削除 – このアクションは、URIから指定されたセグメントを削除します。たとえば、URIパスから英語ロケールを削除するには、現在のパスセグメントに
/ja-jp/を指定します。 -
パスセグメントの挿入 – このアクションは、指定されたセグメントをURIパスに挿入します。このルールを適用するには、セグメントを挿入したい位置と、挿入したいセグメントを指定します。たとえば、特定のテキストの直後にセグメントを挿入したい場合は、次の手順を実行します。
-
新しいセグメントを挿入する位置を指定します。
-
現在のパスセグメントで、新しいセグメントを追加するテキストを指定します。
-
新しいパスセグメントで、追加するセグメントを指定します。
-
