2012-01-23 14 views
2

私は現在、安らかなapisを書くことができるWCF Web APIを使用してWeb APIを開発しています。私が持っている懸念の1つはセキュリティです。このような理由から私は非常にうまくいくOAuthプロトコルで私のAPIを保護することに決めました。しかし、チームは、私たち自身のアプリケーションがoauthによって承認されるべきではなく、http basicによって許可されなければならないという結論に達しました。つまり、クライアントアプリケーションはユーザー名とパスワードを送信する必要があります。ssl channel wcf web api?

だから私は2つの質問があります:私は、SSLで動作するようにWCFのWeb APIを設定するにはどうすればよい

  1. を、私は、Web APIをプレビュー6を使用していて、プロジェクトがMVC3アプリケーションですか?
  2. 私は、クライアントアクセストークンからIPrincipalの作成を処理し、それを操作パラメータに注入する操作ハンドラを持っているので、ユーザの情報にアクセスすることができます。私は同じ操作ハンドラで認証スキームがOAuthかhttpベーシックかどうかをチェックできる条件を持っています。そして、httpベーシックの場合には、ユーザの認証情報を抽出し、その特定のユーザを認証成功した場合、IPrincipalを作成し、それを操作パラメーターに挿入します。しかし、私が見ているように、http基本を使っているアプリケーションがAPIに何かを要求するたびに、データベースにアクセスして認証する必要があります。だから私の質問は:私は正しい道にいるのでしょうか、これは他の方法で達成できますか?

いずれの回答もありがとうございます。先進的でありがとう!

答えて

1

HTTPSで公開されている他のWCFサービスと同様に、WCF Web APIのSSLを設定します。 IISでホストされている場合は、HTTPSのサイトバインディングを構成する必要があります。あなたが自己ホストされているなら、設定はもう少し複雑です。すべての詳細については、http://msdn.microsoft.com/en-us/library/ms733768.aspxを参照してください。

カスタムIDプロバイダに対する基本認証を処理するには、IISでホストされているときにカスタム認証モジュールを使用するのが普通です。これを行う方法の例については、[http://custombasicauth.codeplex.com/]を参照してください。あなたが自分でホストされているなら、カスタムユーザ名passworldバリデーターを使うことができます。詳細は、http://msdn.microsoft.com/en-us/library/aa702565.aspxを参照してください。

はい、セッションのようなセマンティクスを確立しない限り、すべてのリクエストで認証が必要であると確信しています。

これが役に立ちます。