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