1

私がやりたいことは次のとおりです。

1) WCF サービスに対する最初の呼び出しでクライアントを認証します。これは、アプリケーションごとではなく、ユーザーごとに行われます。

2) クライアントが呼び出しを行う権限を持っていることを確認します。

3) 前の呼び出しのステップ 1 で認証が既に行われている状態で、承認のみを行う後続の呼び出しの場合。

また

クライアントが何らかの理由でサービスの別のインスタンスに接続した場合、または「ハンドシェイク」が壊れて再認証された場合。

これが理にかなっていることを願っています。これは、ユーザー名とパスワードの認証と承認を使用してWCFで暗黙的に発生しますか、それともカスタマイズしたものを書く方法はありますか? 基本的にこれは効率化のためです。

どうもありがとう、フグ

4

1 に答える 1

2

これはセキュリティ コンテキスト (またはセキュリティ セッション) と呼ばれ、メッセージ セキュリティで可能です。唯一の制限は、セッションが単一のサービス インスタンスとクライアント プロキシ間で処理されることです (すべての呼び出しは同じプロキシ インスタンスで実行する必要があります)。

セキュリティ コンテキストを許可するための基本的な設定を次に示します。

<wsHttpBinding>
  <binding name="wsHttp">
    <security mode="Message">
      <message clientCredentialsType="UserName" estabilishSecurityContext="true" />
    </security>
  </binding>
</wsHttpBinding>

EstabilishSecurityContextデフォルトでは true です。これをオンにすると、WS-SecureConversation プロトコルが使用されます。最初の呼び出しは、認証された資格情報を渡し、セキュリティ トークンがクライアントに発行されます。次の呼び出しでは、このセキュリティ トークンを使用してクライアント ID を提供します。この動作は開発者にとって透過的であるため、トークンを扱う必要はまったくありません。

于 2011-01-14T15:31:43.960 に答える