FC2ブログ
[IIS] 2000で動いたのに2003だと動かない問題について
メモ程度に

BASP21を使用してIIS上から他のプログラムを動かしたとしよう。2000のデフォルトのセキュリティ設定ではいくつか甘い部分があるため、ある程度のアプリケーションが起動できる。
しかし、2003からは厳しくなりデフォルトでは動かない事がしばしば。そしてIIS6.0から新しい仕組みが入ったためIISの動作プロセスのユーザーが変更されている(デフォルトでは Network Serveice になっている)。
これが曲者でこやつにはUserと同等の権限しかない。そのおかげで厳しくなったセキュリティでは動作しない事が多々ある。ただ、このアカウントでもLogonUser関数やCreateProcessAsUser関数が使えるため、特定のアプリケーションが動かないよ!っていう場合には、BASP21を使わないで独自にプロセスを起動させるためのコンポーネントを用意したほうがいい。

※1LogonUser関数を使う場合、グループポリシーのユーザー権利の割り当てで、「プロセスレベルトークンの置き換え」の権利を持っていないとだめ。デフォルトで、Network Service には割り当てられている。

※2BASPのExecuteメソッドは、IISのプロセスのユーザートークンで新しいプロセスを起動するので制限が掛かる。

自分の場合は、IIS6.0からDirectShowを使用する外部アプリを起動させようとしたら、DirectShowの初期化のタイミングで失敗した。LocalSystemで動かせば動かなくはないが、心配なのでコンポーネントを作ることで対応した。この外部アプリを起動するユーザーを必要最小限の特権にしとけば安全だよね?


     /.: ̄ ̄ ̄ ̄ ̄ \
    /: : :             \
  /: : : :            \
/: : : : : :               \     
: : : : : : : :.._        _      \    
: : : : : : : ´⌒\,, ;、、、/⌒`        l
: : : : ::;;( ● )::::ノヽ::::::( ● );;:::    |   
: : : : : : ´"''",       "''"´       l  
: : : : : : . . (    j    )/       /  
\: : : : : : :.`ー-‐'´`ー-‐'′    /         
/ヽ: : : : : : : : : : : : : : : : : : : : イ\     
: : : : : : : : : :.``ー- -‐'"´        \      
: : : : . : : . : : .                   \
スポンサーサイト
TOP
プロフィール

hssamurai

Author:hssamurai
FC2ブログへようこそ!

最新記事
最新コメント

最新トラックバック

月別アーカイブ
カテゴリ