セキュアWCFサービスは、定義されたグループやユーザーによって制限Windows認証を使用してIIS 7でホストされています

StackOverflow https://stackoverflow.com/questions/1166794

質問

どのようにのみ定義されたユーザー/グループのアクセスを可能にするために、IIS 7でホストされているWCFサービスを設定します。

既存の設定:

<authentication mode="Windows"/> 

<services>     
 <service name="MyService.Test" behaviorConfiguration="MyService.TestBehavior">
  <endpoint address="" binding="wsHttpBinding" contract="MyService.ITest">
   <identity>
    <dns value="localhost"/>
   </identity>
  </endpoint>
  <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
 </service>
</services>
<behaviors>
 <serviceBehaviors>
  <behavior name="MyService.TestBehavior">
   <serviceMetadata httpGetEnabled="true"/>
   <serviceDebug includeExceptionDetailInFaults="true"/>          
  </behavior>        
 </serviceBehaviors>
</behaviors>

私は、web.configファイル内のファイルまたはフォルダ上のファイルシステムのいずれかの権限(ユーザーまたはグループ)を設定します。

役に立ちましたか?

解決

すべての

まず、あなたはイントラネット環境にいる場合、あなたはとnetTcpBindingに切り替える必要がある可能性が - それは高速です、それはより柔軟だ、誰が(ファイアウォールを超えて)外から呼び出すことはできません - 完璧な

次 - あなたがWindows資格情報は、wsHttpBindingとし、netTcpBindingではデフォルトでオンになっています。 WCFの世界では、あなたが一般的に安全ではないファイルやフォルダう - あなたは確保したい、何がサービスコールしている - そしてそうすることが、Windowsの資格情報を使用して簡単です - ちょうどあなたのサービスの実装にPrincipalPermission属性を追加し、あなたは完了です。

class MyService : IMyService
{
  [PrincipalPermission(SecurityAction.Demand, Role="SysAdmin")]
  public void SensitiveMethod()
  {
   ....
  }
}

うまく動作するはずです。

あなたが本当にファイルやフォルダを確保する必要がある場合は、

、あなたは常に、web.configファイルを使用して、Windowsのユーザー名とグループに基づいて、通常のアクセス権限を指定することができます - それは本当に、WCFとは何の関係もありません。

マルク

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top