必要なアクセスポリシーを追加する

このタスクでは、リクエストをバックエンド保護されたWebリソースにルートするために必要なポリシーを作成します。
オリジナルの例では、以下が使用されました:

URLリダイレクト
/2nd2ndbackend.myportal.com
/3rd3rdbackend.myportal.com
重要事項

重要

必要なリダイレクトごとにポリシーを追加します。

第2、第3、およびその他のバックエンドごとにアクセスポリシーを追加します:

  1. 必要に応じて[Policies(ポリシー)]タブを選択します。
  2. ポリシーリストのトップにある追加アイコン ()をクリックし、[Protected(保護対象)]を選択します。

    ポリシータイプの詳細については、Access Gatewayポリシーのタイプについてを参照してください。
  3. ポリシータイプを[Custom(カスタム)]に変更します。
  4. [Advanced(詳細設定)]を展開します。
  5. [Custom Configuration(カスタム構成)]テキストエリアに以下のコードを入力します:
    メモ:コードを複数のセクションに入力します。
    はじめに、ポリシータイプを入力します。
     set $policy_type "PROTECTED"


    重要事項

    重要

    以下のポリシータイプをサポートします:

    ポリシータイプ

    対応するpolicy_type
    保護対象PROTECTED
    保護対象外NO_AUTH
    保護対象ルールPROTECTED_REGEX

    アダプティブルール

    サポート対象外


    すべてのポリシータイプのリストを見るには、Access Gatewayポリシーのタイプについてをご覧ください。

  6. set $policy_*ステートメントの後に以下を入力します:
     set $UserName ''; set $oag_username ''; set $RemoteIP ''; set $RelayDomain ''; set $SESSIONID ''; 
  7. 各属性に対して、対応するインデックス付き変数を指定します。これらはSAMLアサーションからのキーであり、アプリケーション属性とインデックス付き変数の間が1対1の関係でなければなりません。
    以下のように3つの属性があるとすると、3つのsetステートメントに加えて、追加のsetステートメントを作成します。
    メモ:フィールド名は[Name(名前)]列で指定した名前と一致していなければなりません。また、$_argc変数は合計属性の数と一致している必要があります(この例では3)。
     set $_1 'oagusername'; set $_2 'firstname'; set $_3 'lastname'; set $_argc 3; 

    例:

  8. setステートメントの後に、以下にように2つの必要なステートメントを入力します:
     # process request policies access_by_lua_file conf/authSession.lua; # resolver -required if using domain and not IP resolver 127.0.0.1; 
  9. 必要なリダイレクトを追加します。
    以下を適切な値に置き換えます:
    代入説明
    <APP_PATH>追加のバックエンドにプロキシされるサーバーに引き渡されるOAGアプリのURI/2nd
    <PROXIED_SERVER_PROTOCOL>HTTPまたはHTTPS。<PROXIED_SERVER>によってサポートされるプロトコルによる。HTTPS
    <PROXIED_SERVER><APP_PATH>
    のバックエンドサーバーのURI。必要に応じてポートを含めることも可能。

    2ndbackend.myportal.com


    一般:
     #substitute the response data to include the application uri for absolute URLS subs_filter <PROXIED_SERVER_PROTOCOL>://<PROXIED_SERVER>/ https://$http_host/app1/ gi; #sets the protocol and address of a proxied server which a location should be mapped to. proxy_pass <PROXIED_SERVER_PROTOCOL>://<PROXIED_SERVER>/<APP_PATH> #substitute the response data to include the application URI for redirects proxy_redirect <PROXIED_SERVER_PROTOCOL>://<PROXIED_SERVER>/ /<APP_PATH>/; #substitute the response data to include the application URI for relative URLS subs_filter href="/ href="/<APP_PATH>/ gi; 

    例:
     #substitute the response data to include the application uri for absolute URLS subs_filter HTTPS://2ndbackend.myportal.com/ https://$http_host/app1/ gi; #sets the protocol and address of a proxied server which a location should be mapped to. proxy_pass HTTPS://2ndbackendport.com/2nd; #substitute the response data to include the application URI for redirects proxy_redirect HTTPS://2ndbackend.myportal.com/ /2nd/; #substitute the response data to include the application URI for relative URLS subs_filter href="/ href="/2nd/ gi; 
  10. 以下のステートメントを追加します。
    メモ:必要なすべてのヘッダーをリクエストに追加する必要があり、これは、元の属性値のサブセットである可能性があります。
     # common managed directives include /etc/nginx/conf/icsgw_location_common.conf; # Include headers for application proxy_set_header oag_username $_1; proxy_set_header firstname $_2; proxy_set_header lastname $_3; # set to hostname that the protected upstream app needs proxy_set_header host localhost; 
  11. 最後にproxy_set_headerステートメントを入力します。
    メモ: アップストリームのアプリがプライベートホスト名を必要とする場合、 host をその値、またはアプリサーバーが期待する値に変更する必要があります。
     # Specify the value required by the upstream application proxy_set_header host $host; 
  12. [Not validated(未検証)]をクリックしてコードブロックを検証します。
    成功すると、[Not validated(未検証)]ボタンが[Valid(有効)]に変わります。
  13. エラーがある場合は修正し、[Okay(OK)]をクリックしてポリシーを確定します。
  14. [Done(完了)]をクリックしてアプリケーションを完成させます。

以下の例は、すべての www.myportal.com/2ndへのリクエストを2ndbackend.myportal.comにリダイレクトする、完成したコードブロックを示します。

 set $policy_type "PROTECTED"; # The values from auth Session set $UserName ''; set $oag_username ''; set $RemoteIP ''; set $RelayDomain ''; set $SESSIONID ''; # Key(s) from the SAML Assertion # authSession will look in the session for these key # and populate the indexed variables set $_1 'oagusername'; set $_2 'firstname'; set $_3 'lastname'; set $_argc 3; # process request policies access_by_lua_file conf/authSession.lua; # resolver -required if using domain and not IP resolver 127.0.0.1; #substitute the response data to include the application uri for absolute URLS subs_filter HTTPS://2ndbackend.myportal.com/ https://$http_host/app1/ gi; #sets the protocol and address of a proxied server which a location should be mapped to. proxy_pass HTTPS://2ndbackend.myportal.com/2nd; #substitute the response data to include the application URI for redirects proxy_redirect HTTPS://2ndbackend.myportal.com/ /2nd/; #substitute the response data to include the application URI for relative URLS subs_filter href="/ href="/2nd/ gi; # common managed directives include /etc/nginx/conf/icsgw_location_common.conf; # Include headers for application proxy_set_header oagusername $_1; proxy_set_header firstname $_2; proxy_set_header lastnamename $_3; # set to hostname that the protected upstream app needs proxy_set_header host $host; 

次の手順

このプロセスを繰り返し、リクエストされたURI/リダイレクトごとに新しいポリシーを追加します。この例では、/3rdhttps://3rdbackend.myportal.com/にリダイレクトする追加のポリシーを付加します。

テスト