2017-02-23 27 views
1

MS Azureを使用してWebアプリケーションを開発しています。バックエンドはJAVA/Springアプリケーションであり、フロントはJavascript/Angular開発ですが、関連性はないと思います。 私の問題は、正面からの認証されたPOSTリクエストがazure XSRF保護によってブロックされ、その情報が見つからないということです。認証されていない要求は、認証されたGET要求だけでなく、問題なく通過しています。 Azure website Rest Api only accept GET, POST returns 403. Possibly CORSAzure WebアプリケーションでXSRF保護を使用する方法

効果的に使用-Agentヘッダを変更するよう、実際に可能な回避策でこの要求のXSRF保護を無効にします。この応答は、私を発見した

2017-02-23T22:44:46 PID[2668] Verbose Received request: POST https://immosearchapi.azurewebsites.net/profile 

2017-02-23T22:44:46 PID[2668] Verbose Found 'AppServiceAuthSession' cookie for site 'immosearchapi.azurewebsites.net'. Length: 556. 

2017-02-23T22:44:46 PID[2668] Information Sending response: 403.60 Forbidden 

2017-02-23T22:44:46 PID[2668] Warning Cross-site request forgery detected for user '[email protected]' from referer 'immosearchweb.azurewebsites.net'! 

:しかし任意の認証済みPOSTは次のようにログを生成します。

しかし、ChromeではUser-Agentを変更することはできません。これは私の場合は受け入れられません。

AzureバックエンドのXSRFを完全に無効にする方法はありますか(セキュリティは本当にこの段階で問題になることはありません)。

または、要求されたクッキーに関するヘッダー、またはヘッダーが受け入れられる場所はどこですか?

は...事前にありがとう

更新: これは本当に自分の質問への答えではありませんが、更新として、この問題のための私の回避策はに、プロジェクトのアーキテクチャを変更することでした単一サーバーアプローチ。 AzureでCORSとXSRFの問題を回避するために、Spring APIをフロントエンドとRest APIに提供するように更新しました。私はADALの仕事をすることはできませんでしたが、それは私の解決策ではないMSアカウントのみをサポートしているようです。

答えて

0

Azure WebAppでWebアプリケーションのAuthentication/Authorization機能を有効にしたようです。したがって、クロスサイトリクエストを実行するには、2つの方法があります。あなたの現在のシナリオのためのAdal.jsまたはAdal-Angularを使用して

  1. 、あなたのコードを変更するADAL for JSのREADMEの内容に従ってください。そして、adal jsライブラリを紹介するblogがあります。
  2. 私の経験によれば、角度リクエストコールの場合はimmosearchweb.azurewebsites.netに同様のインターフェイスを作成し、JavaのHttpClientを使用して&リクエストパラメータを渡して、immosearchapi.azurewebsites.netのインターフェイスを呼び出すことができます。それは単純なようです。
+0

明らかに、認証は問題の根本原因です。私はjsのためにADALを稼働させることができましたが、バックエンドAPIに認証されたリクエストを発行する方法はわかりません(Azure認証は**本当に混乱します)。だから、基本的に私の問題を解決しない、私はまだ403の応答を得た。万一、オプション2に関する情報がありますか?ADALなしで認証されたリクエストを生成しようとしていますか? –

関連する問題