0

私は2つの簡単なアプリケーションを作成しました.1つはMVC Webサイト、もう1つはMVC APIです。ウェブサイトはAPIからいくつかの方法を使います。Webアプリケーションからapi api(ユーザー認証)にトークンを渡す

私はAzureに「App Services」、Web AppとしてWebサイト、Api AppとしてApiを配備しました。この時点まで、私は認証を実装しておらず、正常に動作しています。

ここで、両方のリソースで認証を使用する必要があります。 Azureポータルから、WebAppとApiAppの両方の認証が有効になりました。私はと同じ値をセットAPI Appのマイクロソフトアカウント

を構成し、Microsoftのアカウント でログイン:認証されなかったときに取るように アクションON: アプリケーションサービスの認証:WebAppので は私がに値を設定します私はこれを 'Allow Request(No Action)'に設定します。 Apiのアプリケーションコードで私はコントローラに[Authorize]属性を設定しました。

WebAppに移動すると、私はログインできるMicrosoft Account Loginページにリダイレクトされ、Appが表示されます。これは素晴らしいです。 しかし、私はこれらの資格情報を私のApi Appに何とか送ることができません。トークンを作成(または取得)してApiアプリケーションに渡すことは可能ですか?だからApi Appでは自動的に認証され、そこから必要なユーザーデータを取得できますか?

答えて

1

webapi側でベアラトークンベースの認証にOAuthを使用できます。トークンを発行するようにWeb APIを設定します。 mvcアプリケーションで認証されたら、body-grant_type = password & username = uname &パスワード= pwdを使用してapiサーバーに要求を送信します。トークンを取得したら、それをクッキー/ローカルストレージに保存してから、Web APIへのリクエストごとにこのトークン値を持つAuthorizationヘッダーを追加する必要があります。

関連する問題