5

http://blogs.msdn.com/drnick/archive/2007/03/23/preventing-anonymous-access.aspx

誰かがWCFでwsHttpBindingを使用して、トランスポート(ssl)やメッセージセキュリティを必要とせずにIISで匿名アクセスを無効にできるかどうかを明確にできますか?

4

2 に答える 2

3

あなたが説明したシナリオでは、 wHttpBinding では、内部の WCF セキュリティ スタックを使用する必要があります。したがって、通常行うことは

  • 匿名アクセスを有効のままにする
  • <serviceAuthorization principalPermissionMode="UseWindowsGroups" /> で serviceBehavior を作成します
  • PrincipalPermissionAttribute を使用して、サービス メソッドのすべての具体的な実装に注釈を付けます。これは、アクセスを制御するためのさまざまなオプションを備えた非常に強力なツールです。

それはあなたにとって受け入れられる解決策ですか、それとも他に考慮すべき点はありますか?

基本的な例:

public class TestService : ITestService
{
  [PrincipalPermission(SecurityAction.Demand, Name = "testdomain\\administrator")]
  public string DoWork()
  {   
    return "Hello World " + Thread.CurrentPrincipal.Identity.Name;
  }
}

  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="WcfSecurity.Www.TestServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
          <serviceAuthorization principalPermissionMode="UseWindowsGroups" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="WcfSecurity.Www.TestServiceBehavior" name="WcfSecurity.Www.TestService">
        <endpoint address="" binding="wsHttpBinding" contract="WcfSecurity.Www.ITestService" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>    
  </system.serviceModel>
于 2008-11-05T17:13:04.757 に答える
0

Windows 統合セキュリティを使用したいと考えています。IIS で匿名アクセスを無効にしてウィンドウのみを許可すると、何らかのセキュリティ モード (ssl を必要とするトランスポート セキュリティなど) を使用しないと、WCF で wsHttpBinding を使用できないようです。

Windows 認証のみを使用したいので、必ずしもトランスポート セキュリティに ssl を使用する必要はありません。

これは、インターン アプリケーションの非常に一般的なシナリオのように思われるため、(私のリンクで確認されたように) すぐに使用できるわけではないことに少し驚きました。

Windows 認証のみをサポートする basicHttpBinding にダウングレードしたくありません。

于 2008-10-24T01:01:01.893 に答える