ウォークスルー: Windows ユーザとロールのセキュリティの実装
このウォークスルーでは、Web アプリケーションと GIS サービスのセキュリティを実装する方法を示します。ユーザは、ローカル Web サーバ コンピュータまたはサーバが属するドメインに Windows オペレーティング システム アカウントとして格納されます。ユーザのロールは、ローカル サーバまたはドメインでグループとして定義されます。Windows ユーザとグループは、ユーザとロールを格納するさまざまな場所の 1 つです。このオプションは一般に、サーバのユーザがインターネット経由で接続するのでなく、ローカル ネットワーク上に存在する場合に使用されます。GIS ユーザがネットワーク上ですでに取得しているアカウントを利用できるようにしたい場合は、この方法が便利です。
ここでは、必要に応じてユーザやグループをシステムに追加し、Manager でユーザとロールの場所を設定し、Web アプリケーションと GIS Web サービスの権限を設定し、GIS Web サービスのセキュリティを有効にします。
ここでは最後の手順として、GIS Web サービスのセキュリティを有効にします。サービスのセキュリティを有効にすると、Windows グループのメンバーシップに基づいて認証されたユーザだけがシステム上のサービスにアクセスできるようになります。また、この時点から、すべてのサービスの権限を管理する必要があります。すべてのサービスへのアクセスを認定されたユーザに制限し、権限を継続的に管理する準備が整うまで、サービスのセキュリティを有効にしないでください。
ここでの手順は次のとおりです。
- オペレーティング システム ツールを使用したユーザとグループの追加
- Manager でのユーザとロールの格納場所の設定
- ユーザとロールの表示
- Web アプリケーションへのセキュリティの適用
- GIS Web サービスの権限の設定
- GIS Web サービスへの匿名アクセスの無効化
- GIS Web サービスへのセキュリティの適用
オペレーティング システム ツールを使用したユーザとグループの追加
Windows ユーザとグループに基づいて権限を割り当てるためには、ユーザとグループをシステムに追加する必要があるかもしれません。基本的な手順は以下のとおりです。詳細については、Windows のドキュメントをご参照ください。
Web サーバまたはドメインでユーザとグループをすでに定義していて、それらを使ってアプリケーションやサービスの権限を割り当てたい場合は、このセクションを読み飛ばしてください。
-
ローカル Web サーバにユーザとグループを追加するには、[スタート] → [コントロール パネル] → [管理ツール] → [コンピュータの管理] の順にクリックします(またはデスクトップで [マイコンピュータ] アイコンを右クリックして [管理] をクリックします)。[コンピュータの管理] で、[システム ツール] を展開し、[ローカル ユーザーとグループ] を展開します。[ユーザー] フォルダをクリックして、ユーザのリストを表示します。
- Windows Vista または Windows Server 2008 では、[スタート] → [コントロール パネル] → [管理ツール] → [サーバ マネージャ] の順にクリックします。[サーバ マネージャ] で [構成] を展開し、[ローカル ユーザーとグループ] を展開します。[ユーザー] フォルダをクリックして、ユーザのリストを表示します。
-
[ユーザー] フォルダを右クリックして [新しいユーザー] を選択します。
- ユーザ名(walkthrough1 など)を入力します。パスワード(walkthrough1 など)を入力して確認します。ユーザが次回ログインするときにパスワードを変更するオプションのチェックは外してもかまいません。他のオプションを設定して、[作成] をクリックします。
- 他のユーザを少なくとも 1 人追加します(walkthrough2 など)。[新しいユーザー] ダイアログ ボックスを閉じます。
- [コンピュータの管理](または [サーバ マネージャ])のツリーで [グループ] フォルダを右クリックし、[新しいグループ] を選択します。
-
グループ名(WTGroup1 など)を入力します。必要に応じて、説明を追加します。メンバをグループに追加するには、次の手順に従います。
- [所属するメンバ] セクションで [追加] をクリックします。
- [ユーザー、コンピュータまたはグループの選択] ダイアログ ボックスで、[場所] ボタンをクリックし、ローカル コンピュータの名前を選択して、[OK] をクリックします。
- [ユーザー、コンピュータまたはグループの選択] ダイアログ ボックスで、[選択するオブジェクト名を入力してください] ボックスに、最初に追加したユーザの名前(walkthrough1)を入力します。
- [名前の確認] をクリックして、ユーザが存在することを確認します([詳細設定] ボタンをクリックし、[今すぐ検索] をクリックしてすべてのユーザを表示し、このリストからユーザを選択することもできます)。
- [OK] をクリックして [ユーザー、コンピュータまたはグループの選択] ダイアログ ボックスを閉じ、[新しいグループ] ダイアログ ボックスに戻ります。選択したユーザが [新しいグループ] ダイアログ ボックスに表示されます。
- [作成] をクリックして新しいグループを作成します。
- もう 1 つグループを作成し(WTGroup2 など)、先に作成した 2 人目のユーザ(walkthrough2)を追加します。[新しいユーザー] ダイアログ ボックスを閉じます。[コンピュータの管理] も閉じます。
Manager でのユーザとロールの格納場所の設定
Web アプリケーションとサービスの権限を割り当てるには、まず ArcGIS Server にユーザとロールが格納されている場所を知らせなければなりません。ここでは、ユーザは Web サーバまたはドメイン上のオペレーティング システム アカウント、ロールは Web サーバまたはドメインの Windows グループです。
- ArcGIS Server Manager を起動してログインします。
- Manager で [セキュリティ] パネルを展開し、[設定] をクリックします。
-
[構成] ボタンをクリックします([場所] がすでに Windows ユーザとグループを示している場合でも [構成] ボタンをクリックしてください。ウィザードの指示に従って、必要不可欠な設定手順を実行することができます)。
-
ユーザの格納場所を選択するパネルで、[Windows ユーザ] を選択します。[次へ] をクリックします。
- ロールの格納場所を選択するパネルで、[Windows グループ] をクリックします。[完了] をクリックします。ウィザードが終了し、[場所] ボックスに [Windows ユーザとグループ] が表示されます。
サービスのセキュリティが [無効] に設定されていることを確認します。この時点では、セキュリティを有効にしないでください。このウォークスルーの最後のステップでセキュリティを有効にします。セキュリティを有効にするのが最後のステップである理由は、まず最初に Web サービスの権限を設定する必要があるからです。セキュリティを有効にすると、GIS Web サービスにアクセスできるのは、アクセスが許可されたロールを持つユーザのみになります。
ユーザとロールの表示
ユーザとロールが Windows ユーザ/グループである場合は、Manager にそれらを表示することができます。ユーザまたはグループを追加、編集、削除するには、最初のセクション で説明したように、Windows オペレーティング システム ツールを使用しなければなりません。
-
Manager で [セキュリティ] タブをクリックし、[ユーザ] をクリックします。[ユーザ] パネルにローカル Web サーバ上のユーザがリスト表示されます。
- 1 つのパネルに表示しきれないユーザを表示するには、[>>] をクリックします。パネルの上部にある [表示] ボックスにユーザ名の一部または全部を入力して、[検索] をクリックして、ユーザのリストにフィルタを適用することもできます。
- ユーザのグループ メンバーシップを表示するには、名前の横にある [+] 記号をクリックします。ローカル システムでユーザが属しているグループが表示されます。
- コンピュータがドメインのメンバである場合は、[ユーザの表示] の [ドメイン] ラジオ ボタンをクリックすると、ドメインのユーザを表示することができます。続いて、これらのユーザのドメイン グループ メンバーシップを表示することができます(このリストにはローカル システム グループのメンバーシップは表示されません)。
-
[セキュリティ] タブで [ロール] をクリックすると、ロールが表示されます。この場合、リストにはローカル Web サーバの Windows グループが表示されます。コンピュータがドメインのメンバである場合は、[ドメイン] をクリックしてドメイン内のグループを表示することができます。[ユーザ] ダイアログ ボックスと同様に、グループのリストを 1 ページ分ずつ表示したり、グループのフィルタリングや検索を実行したりできます。
- グループの横にある [+] 記号をクリックすると、グループのメンバであるユーザが表示されます。
Web アプリケーションへのセキュリティの適用
次に、割り当てたロール(この場合は Windows グループ)へのアクセスを制限することにより、Web アプリケーションをセキュリティで保護します。この目的は最後のセクションで達成されます。
- Manager で新しい Web アプリケーションを作成します。アプリケーションがマップ サービスだけで構成されるシンプルなもので、追加のツールやタスクを持たないことがあります。アプリケーションを作成する必要がある場合は、「チュートリアル: Web アプリケーションの作成」をご参照ください。Web サーバに SSL 証明書をインストールしている場合は、アプリケーションを作成するときに(アプリケーション ウィザードの最初のパネルで [高度な設定] オプションを使用して)アプリケーションに HTTPS を使用させることができます。既存のアプリケーションを使用することもできますが、このウォークスルーを実行する間、アプリケーションのユーザはすべて、アクセスが許可されたロールのメンバとしてログインする必要があります。
-
Manager の [アプリケーション] タブをクリックして、Web アプリケーションのリストを表示します。セキュリティで保護するアプリケーションをリストから選択します。[権限] 列には、鍵のかかっていないアイコンが表示されています。 . これはアプリケーションが制限されていないことを示すため、現時点では、ユーザはログインを要求されません。
-
権限アイコン をクリックすると、Web アプリケーションの [権限] ダイアログ ボックスが表示されます。
- [この Web アプリケーションのセキュリティを有効化] チェックボックスをオンにします。これにより、アクセスが許可されたロールのリストが有効になります。
- ドメイン グループに基づくロールにアクセスを許可したい場合は、[ロールの表示] で [ドメイン] オプションをクリックします。それ以外の場合は、[ローカル サーバ] をクリックしてローカル コンピュータのグループを表示します。ドメインとローカル グループの両方をアクセスが許可されたロールとして追加することができます。
- [利用可能なロール] リストで [WTGroup1] ロール(または先に追加した他のロール)をハイライト表示します。[追加] ボタンをクリックして [許可するロール] のリストに追加します。必要に応じて、他のロールをリストに追加します。
-
[保存] をクリックして権限を保存し、アプリケーションのリストに戻ります。権限アイコンが鍵のかかったアイコンに変わります。これは、アプリケーションにアクセスするにはログインが必要になっていることを示しています。
-
IIS Manager を使用して、アプリケーションの認証方式を設定します。
- [スタート] → [設定] → [コントロール パネル] → [管理ツール] → [インターネット インフォメーション サービス(IIS)マネージャ] の順にクリックして、IIS Manager を開きます。
- IIS マネージャの左側のパネルで、[Web サイト] または [サイト] を展開します。[既定の Web サイト] を展開して、セキュリティで保護したばかりの Web アプリケーションを見つけます。
- Windows XP または Windows Server 2003: (1) Web アプリケーションを右クリックし、ショートカット メニューで [プロパティ] をクリックします。アプリケーションの [プロパティ] ダイアログ ボックスが表示されます。 (2) [プロパティ] ダイアログ ボックスで [ディレクトリ セキュリティ] タブをクリックします。[匿名アクセスおよび認証コントロール] の [編集] をクリックします。[認証方法] ダイアログ ボックスが開きます。[匿名アクセス] をオフにします。[認証済みアクセス] で、認証方式を少なくとも 1 つ選択します。ここでは、例として [基本認証] を選択します(警告メッセージが表示されたら [はい] をクリックします)。認証方式の詳細については、「セキュリティの概要」ページをご参照ください。(4) [OK] をクリックして [認証方法] ダイアログ ボックスを閉じ、アプリケーションの [プロパティ] ダイアログ ボックスに戻ります。Windows Vista または Windows Server 2008: (1) ツリーでアプリケーションをクリックします。IIS Manager で右側の [認証] をダブルクリックします。(2) [匿名認証] をクリックして選択し、IIS Manager の右側の [操作] リストで [無効にする] をクリックします。次に、認証方式を少なくとも 1 つ有効にします。認証方式の詳細については、「セキュリティの概要」ページをご参照ください。
- Web サーバに SSL 証明書をインストールしている場合は、アプリケーションを使用するときに HTTPS を要求することができます。これにより、認証方式が [基本認証] に設定されている場合にログインが保護されます。Windows XP または Windows Server 2003: アプリケーションの [プロパティ] ダイアログ ボックスで [ディレクトリ セキュリティ] タブをクリックします。[セキュリティ保護された通信] セクションで [編集] をクリックします(このボタンが無効になっている場合は、SSL 証明書がインストールされていません)。[セキュリティで保護された通信] ダイアログ ボックスで、[セキュリティで保護されたチャネル (SSL) を要求する] をクリックします。[OK] をクリックして設定を保存します。[OK] をクリックして [プロパティ] ダイアログ ボックスを閉じます。Windows Vista または Windows Server 2008: IIS Manager の左側のツリーでアプリケーションをクリックして選択します。IIS Manager の右側の [SSL 設定] をダブルクリックします。[SSL 設定] パネルで [SSL が必要] ボックスをオンにします。
- IIS Manager を閉じます。
- Web アプリケーションのリストで URL ハイパーリンクをクリックし、アプリケーションをテストします。アプリケーションが新しいブラウザ ウィンドウで開き、ログインのためのポップアップ プロンプトが表示されます。アクセスが許可されたロールのメンバ(先に追加した walkthrough1 ユーザなど)のユーザ名とパスワードを入力して、[OK] をクリックします。ログインに成功すると、アプリケーションは ArcGIS Server Web アプリケーション ページを表示します。アプリケーションを終了します。
GIS Web サービスの権限の設定
Web アプリケーションをセキュリティで保護することに加えて、Manager を使って GIS Web サービスへのアクセスを制限することもできます。ここでは、サービスの権限を設定する方法を示します。これらの権限は、セキュリティをサービスに適用するこの後の手順を実行するまで、実際には適用されません。このワークフローでは、サービスの権限を設定してセキュリティを適用することで、セキュリティ プロセスを通じてユーザが引き続きサービスにアクセスできるようにします。
ここでは、サーバ上のサービスがデフォルトで Users グループ(通常はローカル サーバ上のすべてのユーザ アカウントを含む)の全員にサービスへのアクセスを許可します。続いて、このサービスへのアクセスを限られたロールにのみ許可するためにフォルダを 1 つ構成します。この方法は、セキュリティで保護されたサービスと公開されたサービスが混在するサイトに適しているかもしれません。組織によっては、ここで説明するものとは異なる手法が適しているかもしれません。
サービスのユーザとロールが Windows ユーザ/グループである場合は、ユーザがログイン情報を提供しない匿名アクセスがサービスで許可されないことに注意してください。つまり、サービスのすべてのユーザが Windows アカウントを持ち、ユーザ名とパスワードを要求された場合にそれらを入力する必要があります。
- Manager で、サービスの ルート フォルダにサービスが少なくとも 1 つ存在することを確認します。サービスが存在しない場合は、サービスを追加します。サービスの作成については、「チュートリアル: マップ サービスの公開」をご参照ください。
-
サーバのサービスにフォルダを追加します。[フォルダ管理] をクリックします。ドロップダウン リストで[追加] をクリックします。[フォルダの追加] ボックスにフォルダ名(SecurityWalkthrough など)を入力します。[OK] をクリックして、フォルダを追加します。
- サービスを新しいフォルダに追加します。[GIS リソースの公開] を使ってサービスを追加し、サービスの格納場所として新しいフォルダ(SecurityWalkthrough)を指定します([新規サービスの追加] ウィザードを使用することもできますが、[場所] リストに SecurityWalkthrough フォルダが表示されていることを確認してください。
- ルート フォルダで権限を設定し、Users グループのメンバ全員がサービスにアクセスできるようにします。この方法は、デフォルトですべてのユーザを許可し、特定のサービスまたはフォルダで有効なログイン情報を要求するようにしたい場合に適しています。権限を設定するには、[場所] ボックスに「<サーバ名> (ルート)」が表示されていることを確認します。<サーバ名> はサーバのコンピュータ名です(必要に応じて、ドロップダウン リストをクリックして、このアイテムを選択します)。[フォルダ管理] をクリックし、ドロップダウン リストで [権限] をクリックします。[権限] ダイアログ ボックスにフォルダ名(ルート)が表示されます。
-
[権限] ダイアログ ボックスで [Users] ロール(グループ)を選択し、[追加] をクリックします。Users ロールが [許可するロール] リストへ移動します。通常、Users ロールにはローカル サーバ上のアカウントを持つすべてのユーザが含まれます。Windows ドメインのユーザにアクセスを許可する場合は、[ドメイン] オプションをクリックします(通常、ドメイン Users グループにはドメイン内のすべてのユーザが含まれます)。サービスのセキュリティが有効でないことを示す警告に注目してください。この後でセキュリティを有効にします。[保存] をクリックして権限リストを保存します。
- 先に作成したフォルダの権限を制限します。[場所] ドロップダウン リストからフォルダ(SecurityWalkthrough)を選択します。[フォルダ管理] をクリックし、[権限] をクリックします。
- [権限] ダイアログ ボックスの [許可するロール] リストで [Users] ロールをクリックし、[削除] をクリックします。ロールが [利用可能なロール] リストへ移動します。他のロール(Domain Users など)を追加した場合は、それらも削除します。次に、ローカル サーバまたはドメインでアクセスを許可するロール(WTGroup1 など)をクリックします。必要に応じて、複数のロールを追加します。[保存] をクリックして権限リストを保存します。
これでサービスの権限が設定されました。ただし、セキュリティはまだ適用されません。つまり、この時点では、すべてのユーザがログイン情報を提供せずに SecurityWalkthrough フォルダ内のサービスにアクセスできます。次のセクションでは、セキュリティを有効にし、これまでに設定したアクセス権限を適用します。
GIS Web サービスへの匿名アクセスの無効化
GIS Web サービスのユーザがサービスにアクセスするときに Windows ログイン情報を要求することができます。クライアント アプリケーションがログイン情報を要求されるのは、Web サーバから認証チャレンジを受信した場合だけです。ここでは、IIS Web サーバがユーザのログイン情報を取得するための設定を行います。
GIS Web サービスのすべてのユーザがローカル サーバまたはドメインで Windows アカウントを取得している必要がなければ、このセクションを実行しないでください。
- [コントロール パネル] → [管理ツール] → [インターネット インフォメーション サービス(IIS)マネージャ] の順にクリックして、IIS Manager を開きます。
- ローカル コンピュータの [Web サイト] で、ArcGIS インスタンスが含まれている Web サイトを選択します(通常は [既定の Web サイト] にあります)。インスタンス フォルダを見つけて展開します(デフォルトでは ArcGIS という名前です)。
-
匿名アクセスを無効にする方法は、システムごとに異なります。
- Windows Server 2003 または Windows XP:
- [Services] Web アプリケーションを右クリックし、[プロパティ] をクリックします。
- [ディレクトリ セキュリティ] タブをクリックします。[匿名アクセスおよび認証コントロール] で [編集] をクリックします。
- [匿名アクセス] のチェックを外します。[認証済みアクセス] で、認証方式を少なくとも 1 つ選択します。認証方式については、この後の説明をご参照ください。[OK] を 2 回クリックして、IIS Manager に戻ります。
- Windows Server 2008 または Windows Vista:
- [Services] アプリケーションをクリックして、IIS Manager の右側にそのプロパティ リンクを表示します。
- [IIS] グループにある [認証] をダブルクリックします。これにより、アプリケーションの認証方式のリストが表示されます。
- 認証方式のリストで [匿名認証] を右クリックし、ショートカット メニューで [無効にする] をクリックします。
- 他の認証方式を少なくとも 1 つ有効にします。認証方式については、この後の説明をご参照ください。
- Windows Server 2003 または Windows XP:
- 上記の手順を繰り返し、ArcGIS フォルダ内の Rest Web アプリケーションのプロパティについても設定します。
認証方式の詳細については、IIS のドキュメントや、MSDN ページ「Authentication Methods Supported in IIS 6.0」などのリソースをご参照ください。
GIS Web サービスへのセキュリティの適用
GIS Web サービスをセキュリティで保護するための最後の手順は、サービスにセキュリティを適用することです。ここでは、GIS Web サービスを制限し、アクセスが許可されたロールに属しているユーザだけがサービスにアクセスできるようにします。この手順を実行するまでは、ここまでに適用した権限は実際には効力を持たず、誰でもサービスにアクセスできます。先に説明したように、権限を設定するまではこの手順を実行しないでください。
サービスのセキュリティを一度有効にしたら、Manager でセキュリティを無効にすることはできません(必要に応じて、ArcGIS Server ヘルプのセキュリティを手動で無効にする方法 をご参照ください)。サービスのセキュリティは一方向のプロセスです。GIS Web サービスのセキュリティを有効にする準備ができていない場合は、このセクションをスキップして次のセクションに進んでください。
- Manager で左側の [セキュリティ] タブをクリックし、[セキュリティ] セクションの [設定] をクリックします。セキュリティの設定パネルが表示されます。
-
[セキュリティ設定] パネルの [GIS サービスのセキュリティ] に表示されている情報を読んでください。ArcGIS Server をインストールしている場合は、セキュリティが [無効] に設定されています。
- [有効] をクリックします。サービスのセキュリティを有効にする前に権限を設定するように警告するメッセージが表示されます。[サービスのセキュリティを有効化] ボタンをクリックして確認します。[セキュリティ設定] パネルに戻り、セキュリティが有効であることが示されます。
-
Manager で左側の [サービス] タブをクリックします。サービスのリストにおいて、権限アイコンが鍵のかかった状態で表示されます。 . アイコンに感嘆符付きの赤いマークが付いている場合はサービスの権限リストが空であることを示しています。これらのサービスには、各サービスの [許可するロール] リストにロールが少なくとも 1 つ追加されるまで、どのユーザもアクセスできません。
- サービスのセキュリティが有効であることを確認するには、ArcCatalog を使ってサービスに接続します。ローカル コンピュータまたは ArcGIS Server の Web サーバにアクセスできるコンピュータで ArcCatalog を起動します。
- ArcCatalog のカタログ ツリーで [GIS Servers] ノードを展開します。[ArcGIS Server サーバの追加] アイテムをダブルクリックします。
- [GIS サービスの使用] をクリックします。[次へ] をクリックします。
-
次のパネルで、接続タイプとして [インターネット] をクリックし、サーバの URL(たとえば http://myserver/arcgis/services)を入力します。ダイアログ ボックスの [認証] セクションで、Users グループのアカウントのうち WTGroup1 に属していないユーザ(MYSERVER\walkthrough2 など)のユーザ名とパスワードを入力します(別のユーザやロールでセキュリティを設定している場合は、セキュリティで保護された SecurityWalkthrough フォルダへのアクセスが許可されていないアカウントを使用します)。[完了] をクリックします。ダイアログ ボックスが閉じ、[GIS Servers] リストに新しい接続(たとえば arcgis on myserver)が表示されます。
- 新しい接続のノードを展開します。サーバのルートにサービスが表示されます。ただし、先の接続でセキュリティを適用したフォルダ(SecurityWalkthrough)は表示されません。Users ロールにはルート フォルダへのアクセスが許可されているので、ルート内のサービスとその設定を無効にしないフォルダはすべて、Users のメンバ全員に表示されます。適切なログインで接続していないので、この接続では SecureServices フォルダは提供されません。
- 上記のステップ 6 ~ 8 を繰り返して、ArcCatalog で別の GIS サーバ接続を追加します。同じサーバ URL を入力し、ステップ 8 ではユーザ名とパスワードを入力します。SecurityWalkthrough フォルダの使用が許可されているロールのユーザ(walkthrough1 など)に対して、先ほど作成したログインを使用します。[完了] をクリックして接続を追加します。
- この接続(たとえば arcgis on myserver (2))を展開します。SecurityWalkthrough フォルダが表示され、Users にアクセスが許可されているサービスとフォルダが表示されます。
- 終了したら、Manager と ArcCatalog を閉じます。
ここまでは、Windows ユーザ/グループに基づいて、Web アプリケーションと GIS Web サービスをセキュリティで保護しました。セキュリティの設定の詳細については、ArcGIS Server ヘルプのセキュリティに関するページをご参照ください。
セキュリティで保護されたサービスは、ArcGIS Desktop、Web ADF アプリケーション、JavaScript API アプリケーションなど、さまざまなクライアントで使用することができます。セキュリティで保護されたサービスを Web ADF アプリケーションに追加するには、新しい ArcGIS Server インターネット接続を追加し、Manager または Visual Studio の接続ダイアログの [セキュアなサービスにアクセス] に適切なユーザ名とパスワードを入力します。
必要であれば、ここで作成したサービス、フォルダ、ユーザ、ロールを削除することができます。サービスのセキュリティを一度有効にしたら、すべてのフォルダとサービスの権限を管理しなければならないことに注意してください。サービスだけを追加して、許可されたロールを追加しなかった場合、そのサービスにはどのユーザもアクセスできません(警告アイコン