外部データ接続のあるExcelをExcelServicesで見せるときのセキュリティ要件
外部データ接続のあるExcelをExcelServicesで展開する場合、セキュリティの設定方法がいくつかあります。
弊社環境:
●ExcelはMOSSのコンテンツDBに格納(要はExcelServices用のライブラリに発行します)
●MOSSのWEFサーバ、MOSSのAPPサーバ(ExcelServicesはここにいる)、MOSSのDBサーバ、別途データソースの格納されているSQLサーバ、の4台が登場人物です。
ExcelServericeの利用では、
ユーザがMOSSポータルアクセスして→Excel開く→Excelのフィルタなどを操作して、外部データ(今回SQL SSAS)にアクセスする
ということで3段階のセキュリティが作用すると思います。
機密にいくなら、ポータルは全ユーザに見せて、でも見てもOKなユーザにだけExcelブックが見えて、なおかつ、見えてよいユーザにだけ、Excelの中の特定のフィルタ操作ができる というようにしたいですが。
つまり、SQLサーバに個別のアカウントでアクセスする必要がある。
となると、SSO、またはKerberos認証の構成が必要なようです。
とりあえず、Excelへのアクセスのところどのように設定できるのか。
Excel Services のセキュリティを計画すると、『SharePointServer2007オフィシャルマニュアル』上巻を読み込みました。
1、ファイルアクセスのセキュリティ
ExcelServicesでは、Excelブックとバックエンドのデータソースにアクセスするためのモードとして2種類提供されています。
設定は、ExcelServicesはMOSSサーバの共有サービス>ExcelErvicesの設定で行います。
ここに「セキュリティ>ファイル アクセス方法 」メニューがありますが、
・偽装:
ユーザのWindowsアカウントがExcelServicesで使用される。
シングル構成のファーム以外、つまりマルチサーバ環境では、Kerberos認証を使用してサーバ間の委任を許可する必要がある。
・プロセスアカウント:
ExcelをホストしているWebアプリのアプリケーションプールのアカウントがExcelServicesに使用される。
信頼済みファイルの保存先のファイルに対して、アプリケーションプールアカウントが読み取り権限を持っていることが必要。つまりMOSSポータルにアップされたExcelを利用する場合は、自動的にその権限を持つので、何もしなくてOK。
→これ疑問・・・この設定をしたところ、SQLサーバにはアプリケーションプールのサービスIDでは接続しておらず、無人サービスアカウントに登録したアカウントで行っていた。
2、データアクセスのセキュリティ
Excelが外部データにアクセスする際には、ExcelSerivesが認証方法、接続文字列、使用するクエリ文字列、資格情報など外部データ接続情報を処理します。
この接続情報はブックの中に格納しておくか、ODCファイルにしておきます。
認証の設定は3種類の方法が提供されています。
・Windows認証:
WindowsIDを使用してデータソースに対する認証を行う。
外部データソースがExcelCalculationServicesサーバと別のサーバに格納されている場合は、サーバ間のユーザIDの送受信が安全な方法でなされる、委任、つまりKerberos認証を構成する必要がある。
・SSO(シングルサインンオン):
データソースに接続用にアカウントとパスワードのセットを取得させる方法。MOSSのSSO用認証DBにセットを格納しておく。
このセットは、全ユーザが同じ情報を利用する場合、つまりグループアカウントのようなものを利用する場合と、ユーザごとに変える場合と、両方をとることができる。
各SSOのエントリには、資格情報のセットを取得するためのルックアップとなるアプリケーションIDが含まれている。
・なし:
データソースにアクセスするアカウントを一つに決めて、ODCでパラメータとして渡す、または、MOSSサーバに登録しておいて、そこを参照させる方法。なお、ODCファイルに格納されるパスワードは暗号化されないので、よろしくない。ということでMOSSサーバに登録する方式をとるべきでしょう。
設定は、ExcelErvicesの設定>無人サービスアカウントにあります。
このアカウントは、ドメインアカウントでもローカルアカウントでも可。
ただしもちろん、データソースへのアクセス権限を持つ必要はあります。
~ここまでまとめると・・・・~
実現方法として、
■データソースにアクセスするアカウントを個別ユーザにしたい場合:
Kerberos認証を構成するかSSOを構成するかが必要。
ただし、SSOの場合、初回はユーザがユーザカウントとPWをSSOのデータベースに登録する、という作業が必要になる。
■データソースにアクセスするアカウントが個別ユーザじゃなくてよい場合
SSOのグループマッピングを利用するか、無人サービスアカウントを利用する。
ただし、この場合、すべてのブックに対してひとつのアカウントが利用されることになるため
セキュリティ観点からは、ちょっと危ないかも??
この後、
Excel Services の外部データ接続を計画するを発見。
ここわかりやすいです。
弊社環境:
●ExcelはMOSSのコンテンツDBに格納(要はExcelServices用のライブラリに発行します)
●MOSSのWEFサーバ、MOSSのAPPサーバ(ExcelServicesはここにいる)、MOSSのDBサーバ、別途データソースの格納されているSQLサーバ、の4台が登場人物です。
ExcelServericeの利用では、
ユーザがMOSSポータルアクセスして→Excel開く→Excelのフィルタなどを操作して、外部データ(今回SQL SSAS)にアクセスする
ということで3段階のセキュリティが作用すると思います。
機密にいくなら、ポータルは全ユーザに見せて、でも見てもOKなユーザにだけExcelブックが見えて、なおかつ、見えてよいユーザにだけ、Excelの中の特定のフィルタ操作ができる というようにしたいですが。
つまり、SQLサーバに個別のアカウントでアクセスする必要がある。
となると、SSO、またはKerberos認証の構成が必要なようです。
とりあえず、Excelへのアクセスのところどのように設定できるのか。
Excel Services のセキュリティを計画すると、『SharePointServer2007オフィシャルマニュアル』上巻を読み込みました。
1、ファイルアクセスのセキュリティ
ExcelServicesでは、Excelブックとバックエンドのデータソースにアクセスするためのモードとして2種類提供されています。
設定は、ExcelServicesはMOSSサーバの共有サービス>ExcelErvicesの設定で行います。
ここに「セキュリティ>ファイル アクセス方法 」メニューがありますが、
・偽装:
ユーザのWindowsアカウントがExcelServicesで使用される。
シングル構成のファーム以外、つまりマルチサーバ環境では、Kerberos認証を使用してサーバ間の委任を許可する必要がある。
・プロセスアカウント:
ExcelをホストしているWebアプリのアプリケーションプールのアカウントがExcelServicesに使用される。
信頼済みファイルの保存先のファイルに対して、アプリケーションプールアカウントが読み取り権限を持っていることが必要。つまりMOSSポータルにアップされたExcelを利用する場合は、自動的にその権限を持つので、何もしなくてOK。
→これ疑問・・・この設定をしたところ、SQLサーバにはアプリケーションプールのサービスIDでは接続しておらず、無人サービスアカウントに登録したアカウントで行っていた。
2、データアクセスのセキュリティ
Excelが外部データにアクセスする際には、ExcelSerivesが認証方法、接続文字列、使用するクエリ文字列、資格情報など外部データ接続情報を処理します。
この接続情報はブックの中に格納しておくか、ODCファイルにしておきます。
認証の設定は3種類の方法が提供されています。
・Windows認証:
WindowsIDを使用してデータソースに対する認証を行う。
外部データソースがExcelCalculationServicesサーバと別のサーバに格納されている場合は、サーバ間のユーザIDの送受信が安全な方法でなされる、委任、つまりKerberos認証を構成する必要がある。
・SSO(シングルサインンオン):
データソースに接続用にアカウントとパスワードのセットを取得させる方法。MOSSのSSO用認証DBにセットを格納しておく。
このセットは、全ユーザが同じ情報を利用する場合、つまりグループアカウントのようなものを利用する場合と、ユーザごとに変える場合と、両方をとることができる。
各SSOのエントリには、資格情報のセットを取得するためのルックアップとなるアプリケーションIDが含まれている。
・なし:
データソースにアクセスするアカウントを一つに決めて、ODCでパラメータとして渡す、または、MOSSサーバに登録しておいて、そこを参照させる方法。なお、ODCファイルに格納されるパスワードは暗号化されないので、よろしくない。ということでMOSSサーバに登録する方式をとるべきでしょう。
設定は、ExcelErvicesの設定>無人サービスアカウントにあります。
このアカウントは、ドメインアカウントでもローカルアカウントでも可。
ただしもちろん、データソースへのアクセス権限を持つ必要はあります。
~ここまでまとめると・・・・~
実現方法として、
■データソースにアクセスするアカウントを個別ユーザにしたい場合:
Kerberos認証を構成するかSSOを構成するかが必要。
ただし、SSOの場合、初回はユーザがユーザカウントとPWをSSOのデータベースに登録する、という作業が必要になる。
■データソースにアクセスするアカウントが個別ユーザじゃなくてよい場合
SSOのグループマッピングを利用するか、無人サービスアカウントを利用する。
ただし、この場合、すべてのブックに対してひとつのアカウントが利用されることになるため
セキュリティ観点からは、ちょっと危ないかも??
この後、
Excel Services の外部データ接続を計画するを発見。
ここわかりやすいです。