2

ユーザーがログインするためにいくつかの OAuth プロバイダー (Google、Facebook、Twitter、MS Live) を使用する MVC 4 Web サイト (http://myWebsite.com) があります - DotNetOpenAuth ライブラリを使用します。

サブドメイン (http://api.myWebsite.com) にも API があります。

ユーザーがレコードを更新したい場合、レコードを変更する権限がある (承認されている) ことを確認する必要があります。

問題は、サブドメインの API でユーザーを承認するにはどうすればよいかということです。

これまでの私の考えは次のとおりです。

ユーザーの認証トークンを HTTP 要求ヘッダーの API に追加することができます。その場合、2 つのオプションがあると思います。

i) Web サイトで、すべてのユーザーのアクセス許可を確認するメソッドを作成し、それにトークンを送信して、ユーザーが承認されているかどうかを尋ねます。

ii) DotNetOpenAuth dll を API ソリューションに追加すると、アクセスに必要なロールで API メソッドを単純に装飾できます。これは機能しますか?

3 番目のオプションは、更新されたレコードを Web サイトにポストして認証を実行し、合格した場合はデータを API に送信することですが、これはにおいがするようです。

ここで明らかな何かが欠けていると確信しているため、投稿します。

4

1 に答える 1

1

ユーザーがログインする方法は、他のクライアントにAPIサブドメインの呼び出しを許可する方法と完全に直交しています。APIで認証トークンを受け入れるだけではありません。認証は承認として誤用され、大きなセキュリティホールを開きます。

クライアントにAPIの呼び出しを承認するには、DotNetOpenAuthがサポートするOAuth1または2などの承認プロトコルが必要です。DNOA OAuthAuthorizationServerとOAuthResourceServerのサンプルを確認して、APIへのOAuth2サポートの追加を開始してください。

于 2012-12-22T01:29:26.477 に答える