ポリシータイプ
Access Gatewayは、次のポリシータイプをサポートします。
- 保護対象ポリシー:関連するリソースにアクセスするには、有効なセッション(認証済みユーザー)が必要です。
- 保護対象外ポリシー:すべてのユーザーが、関連するリソースにアクセスできます。
- 保護対象ルールポリシー:有効なセッションと、誰がリソースにアクセスできるかを決定する式が必要です。
- アダプティブポリシー:保護対象外ポリシーを拡張しますが、基盤となるアプリにヘッダー情報を渡します。
- カスタムポリシー:保護対象ルールポリシーを拡張しますが、URIとしての正規表現の入力はサポートされます。
保護対象ポリシー
保護対象ポリシーは、ユーザーのアクセスを許可する前に、有効なAccess Gatewayアプリセッションが存在することを強制します。より排他的なポリシーによって特に指定されない限り、すべてのアプリリソースはこのポリシーの対象となります。
保護対象外ポリシー
保護対象外ポリシーは、有効なAccess Gatewayアプリセッションが存在することを強制しません。通常、このポリシータイプは、ユーザー識別を必要としない匿名ページや、一般消費者向けに信頼されているページのために予約されています。
保護対象外ポリシーが適用されている場合、ヘッダー属性はバックエンドアプリに送信されません。
保護対象ルールポリシー
保護対象ルールポリシーは、保護対象ポリシーの動作を拡張し、特定のリソースのアクセスルール(許可または拒否)を狭く定義することを可能にします。このポリシータイプは、アプリの[Attributes(属性)]メニューで定義した属性を評価します。通常、これらの属性はユーザーのOkta orgから取得されます。そのため、どのユーザープロファイルデータを使用すべきかを理解することが重要です。
ルールは、Perl互換の正規表現ガイド(PCRE)ベースの正規表現です。「保護対象ルールのリソース一致ルール式」を参照してください。定義が保護されている一致ルール式について説明しています。ルールの例と関連する式については、「Access Gatewayポリシーの例」をご覧ください。
保護対象ルールでは、アプリ属性を使用する正規表現が使用されます。次の例は、Groups(グループ)属性を使用するルールを示しています。保護対象ルールリソース一致式を定義するときは、必要なすべての属性が事前に定義されていることを確認してください。アプリ属性の追加に関する詳細については、「アプリケーション属性の管理」を参照してください。
アダプティブポリシー
アダプティブポリシーは保護対象外ポリシーの動作を拡張しますが、すべてのヘッダーを基盤となるアプリに提供します。
カスタムポリシー
カスタムポリシーを使用すると、[Resource Path(リソースパス)]のURIに正規表現を入力できます。正規表現がURIの一致を決定するため、大文字と小文字の区別は無効化されます。
カスタムポリシーは、ポリシーラベルを除いて、テンプレートからのディレクティブを使用しません。失敗を回避するために、必要なディレクティブは必ず設定してください。
カスタムポリシーを使用する場合は、アプリヘッダーを
で見つけることができます。カスタムポリシーは、他のすべてのポリシータイプの前に、つまり最初に評価されます。ポリシータイプの優先順位の詳細、および大文字/小文字の区別がポリシー一致に与える影響の詳細については、「アプリケーションポリシーの優先順位」を参照してください。
リソースパスに正規表現を使用する
リソースパスで大文字と小文字を区別する正規表現には、次のように、修飾子の「~」(チルダ)を追加します:
~ /resource/path
リソースパスで大文字と小文字を区別しない正規表現には、次のように、修飾子の「~*」(チルダ+アスタリスク)を追加します:
~* /resource/path
カスタムポリシーにアップストリームIDを使用する
- Access Gateway管理者UIコンソールにサインインします。
- ドロップダウンメニューの[Applications(アプリケーション)]から[Applications(アプリケーション)]を選択します。
- カスタムポリシーを追加するAccess Gatewayアプリを選択します。
- [General(一般)]タブを選択します。
- [SAML Settings(SAMLの設定)]セクションまでスクロールします。
- [SAML Issuer ID(SAML発行者ID)]を見つけて、次の<upstream_id>プレースホルダーの位置にある文字列をコピーします:
https://<IDP_domain>/<upstream_id>
- このコードの例では、<upstream>プレースホルダーを[SAML Issuer ID(SAML発行者ID)]フィールドの値に置き換えています。<protected resource>プレースホルダーを保護されたWebリソースのホスト名に置き換えてください。
set $policy_type "<PROTECTED/ADAPTIVE/NO_AUTH>";
# process request policies
access_by_lua_file conf/authSession.lua;
# the app you're protecting
proxy_pass http(s)://<upstream>$request_uri;
# common managed directives
include /etc/nginx/conf/icsgw_location_common.conf;
# This sends the host header to the protected resource
proxy_set_header host <protected resource>;