ArcGIS Enterprise ポータルには、いくつかの一般的なセキュリティ問題のスキャンを行う Python スクリプト ツール「portalScan.py」が付属しています。 このツールは、ポータル用のセキュリティで保護された環境の構成のベスト プラクティスに基づき、問題をチェックします。 多数の基準または構成プロパティを分析して、Critical、Important、Recommended という 3 段階の重要度レベルに分割します。 これらの基準の説明は次のとおりです。
| ID | 重要度 | プロパティ | 説明 | 
|---|---|---|---|
PS01  | Critical | プロキシ制限  | ポータルのプロキシ機能が制限されているかどうかを判断します。 デフォルトでは、ポータル プロキシ サーバーはどの URL にも開いています。 サービス拒否 (DoS) やサーバー サイド リクエスト フォージェリー (SSRF) 攻撃を受けるリスクを軽減するため、ポータルのプロキシ機能を、許可された Web アドレスに制限することをお勧めします。  | 
PS02  | Critical | トークン リクエスト  | クエリ パラメーターの認証情報によるトークン リクエストの生成がサポートされているかどうかを判断します。 サポートされる場合は、トークン生成時に URL の一部としてユーザーの認証情報を提供し、ブラウザーの履歴やネットワーク ログを通じて公開される可能性があります。 他のアプリケーションから要求されない限り、これは無効にしておくことをお勧めします。  | 
PS03  | Important | ポータル サービス ディレクトリ  | Web ブラウザーを通じてポータル サービス ディレクトリにアクセスできるかどうかを判断します。 ポータルのアイテム、サービス、Web マップ、グループ、その他のリソースを参照されたり、Web 検索で見つけられたり、HTML フォームでクエリされたりする可能性を減らすため、無効にしてください。  | 
PS04  | Important | セキュアな通信  | ポータルの通信が HTTPS のみを介しているかどうかを判断します。 ポータル内のすべての通信を盗聴から守るために、SSL を使用するようにポータルと ArcGIS Web Adaptor をホストする Web サーバーを構成することをお勧めします。  | 
PS05  | Recommended | 組み込みアカウントのサインアップ  | ユーザーがポータルのサインアップ ページで [アカウントの作成] ボタンをクリックして、組み込みポータル アカウントを作成できるかどうかを判断します。 組織固有のアカウントを使用している場合や、すべてのアカウントを手動で作成する場合は、このオプションを無効にする必要があります。  | 
PS06  | Recommended | 匿名アクセス  | 匿名アクセスが可能かどうかを判断します。 ポータルに認証情報を入力していないユーザーがコンテンツにアクセスできないように、匿名アクセスを無効化してポータルを構成することをお勧めします。  | 
PS07  | 推奨  | LDAP アイデンティティ ストア  | ポータルが LDAP アイデンティティ ストアを使用して構成されている場合、このストアによって暗号化通信を使用するかどうかが決定されます。 ユーザー ストアおよびグループ ストアの構成パラメーターにリストされている ldapURLForUsers および ldapURLForRoles プロパティで、LDAPS を使用することをお勧めします。  | 
PS08  | 推奨  | ポータルの SSL 証明書  | 自己署名証明書をポータルで使用するかどうかを決定します。 ポータルと通信するクライアントの Web ブラウザーによる警告メッセージなどの予期しない動作を減らすには、ポート 7443 にバインドされた CA 署名 SSL 証明書をインポートして使用することをお勧めします。  | 
PS09  | 推奨  | クロス ドメイン リクエスト  | クロス ドメイン (CORS) リクエストが制限されないかどうかを決定します。 未知のアプリケーションが共有ポータル アイテムにアクセスする可能性を減らすには、クロス ドメイン リクエストを信頼済みドメインでのみホストされているアプリケーションに制限することをお勧めします。  | 
PS10  | 重要  | フェデレーション サーバーの管理 URL  | フェデレーション サーバーの管理者 URL がポータルからアクセスできるかどうか、およびこの URL で使用されている SSL 証明書が信頼済みかどうかを決定します。 証明書が信頼済みでない場合や、ポータルからアクセスできない場合、多くのポータルの機能および操作は失敗します。  | 
PS11  | 推奨  | フェデレーション サーバーのサービス URL  | フェデレーション サーバーのサービス URL がポータルからアクセスできるかどうか、およびこの URL で使用されている SSL 証明書が信頼済みかどうかを決定します。 証明書が信頼済みでない場合や、ポータルからアクセスできない場合でも、ポータルは機能しますが、一部のポータル操作は失敗する可能性があります。  | 
PS12  | 推奨  | パブリック コンテンツ  | メンバーがコンテンツをパブリックに共有できないようにポータルが構成されている場合でも、[すべてのユーザー] と共有されているアイテムはすべて表示されます。  | 
portalScan.py スクリプトは <Portal for ArcGIS installation location>/tools/security ディレクトリにあります。 コマンド ラインまたはシェルからスクリプトを実行します。 スクリプトの実行時に、1 つ以上のパラメーターを指定することもできます。
portalScan.py パラメーター
portalScan.py のパラメーターを次の表に示します。
| パラメーター | 説明 | 
|---|---|
-n  | ポータルがインストールされているコンピューターの完全修飾ドメイン名 (gisportal.domain.com)。 デフォルトは、スクリプトが実行されているコンピューターのホスト名です。  | 
-u  | 管理者アカウントのユーザー名。  | 
-p  | 管理者アカウントのパスワード。  | 
-o  | セキュリティ スキャン レポートが保存されるディレクトリ。 デフォルトのディレクトリは、スクリプトを実行するのと同じフォルダーです。  | 
-t  | ユーザー名とパスワードの代わりに、トークンを生成して使用できます。 トークンを生成すると、portalScan が Webapp URL フィールドに入力されます。 トークンが指定されると、指定されているユーザー名またはパスワードが無効化されます。  | 
--ignoressl  | SSL 証明書の確認を無効にします。 10.7.1 以降、デフォルトで、スクリプトがすべての SSL 証明書の確認を試行します。 Python が証明書の発行元を信頼しない場合、スクリプトの実行は失敗します。 必要に応じて、このパラメーターですべての証明書を無視するよう指定できます。  | 
-h または -?  | スクリプトの実行中に指定できるパラメーターのリストを出力します。  | 
例 (ユーザーのホーム ディレクトリに書き込まれる出力ファイルを使用):./portalScan -n portal.domain.com -u admin -p my.password -o ~
パラメーターを指定せずに portalScan スクリプトを実行すると、手動で入力するか、デフォルト値を選択するよう求められます。 トークンを使用する場合は、スクリプトを実行中にパラメーターとしてトークンを指定する必要があります。
スキャンを実行すると、指定ポータルで前述の問題が発生した場合に、それを記載した HTML 形式のレポートが作成されます。
デフォルトでは、このレポートは、スクリプトを実行したのと同じフォルダーに保存され、portalScanReport_[hostname]_[date].html と名前が付けられます。