6

次の役割に基づいて、独自の OAuth 2.0 承認サーバーをセットアップします。

  • リソース サーバー - ASP.NET Web API で構築された API
  • クライアント - ASP.NET MVC で構築された Web アプリケーション
  • リソース所有者 - エンド ユーザー

リソース所有者が資格情報をクライアントに送信し、クライアントが承認要求を行うように、パスワード許可タイプ (リソース所有者パスワード資格情報許可 ) を使用する予定です。クライアント要求を基本認証で認証したいと考えています。

この許可タイプをサポートする DNOA を使用して認証サーバーをセットアップする方法に苦労しています。認可サーバーのサンプル プロジェクトをダウンロードしましたが、これはトークン ベースの許可を使用しているようです (ユーザーは認可サーバーで直接認証します - サンプルでは OpenID を使用)。

フィドラーを使用して承認リクエストを作成しようとすると、ログイン ページにリダイレクトされるだけなので、このサンプルではこの許可タイプがサポートされていないと想定しています。

POST http://localhost:50172/oauth/authorize HTTP/1.1
User-Agent: Fiddler
Host: localhost:50172
Content-Length: 103

grant_type=password&client_id=sampleconsumer&client_secret=samplesecret&username=user&password=password

基本認証を使用する場合も同様です。

どんな助けでも大歓迎です。私は過去にDNOAを使用してOAuthサービスを利用することに大きな成功を収めてきましたが、サーバーのセットアップ/構成に関するドキュメントはかなりまばらです。

4

1 に答える 1

2

間違っている認証サーバーの認証エンドポイントにパスワードグラントを送信しているようです。許可は、トークン エンドポイントに直接送信する必要があります。このエンドポイントは、認証サーバーがアクセスするために認証済みの要求を必要としない URL にある必要があります (つまり、ASP.NET がログイン ページにリダイレクトされることはありません)。

とはいえ、Web ベースのクライアント アプリがユーザーに別の Web サービスへのパスワードを要求することは非常にまれです (そして推奨されません)。認証コード フローは、あなたが説明しているように聞こえるシナリオでは、断然好ましいものです。

于 2012-12-29T05:08:53.627 に答える