2017-02-23 1 views
1

MS Azure를 사용하여 웹 응용 프로그램을 개발 중입니다. 백엔드는 JAVA/Spring 응용 프로그램이고 앞은 Javascript/Angular 개발이지만 관련성이 있다고는 생각하지 않습니다. 내 문제는 하늘의 XSRF 보호에 의해 인증 된 POST 요청이 내 앞면에서 차단되어 이에 대한 정보를 찾을 수 없다는 것입니다. 그냥 명확하게하기 위해, 인증되지 않은 요청은 인증 된 GET 요청은 물론 문제없이 전달됩니다. 나는이 대답 발견Azure 웹 응용 프로그램에 대한 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 유사한 로그를 생성합니다 Azure website Rest Api only accept GET, POST returns 403. Possibly CORS

사용 에이전트 효과적으로 헤더 변경하는 등 가능한 해결 방법은 실제로는이 요청에 대한 XSRF 보호를 비활성화 .

하지만 Chrome에서 User-Agent를 변경할 수 없으므로 허용되지 않습니다.

그래서 Azure 백엔드에 대해 XSRF를 완전히 비활성화하는 방법이 있습니다 (이 단계에서는 보안이 실제로 문제가되지 않으므로)?

요청에 대한 예상 쿠키 및 헤더에 대한 문서는 어디서 볼 수 있습니까?

는 ... 사전에 감사합니다

업데이트 : 이 정말 내 자신의 질문에 대한 답변이 아니라 갱신으로,이 문제에 대한 내 해결이에 프로젝트 구조를 변경하는 것이 었습니다 단일 서버 방식. Azure에서 CORS와 XSRF 문제를 피하기 위해 Spring API를 프론트 엔드와 Rest API를 위해 업데이트했다. 나는 ADAL 작업을 할 수 없었으며, 어쨌든 나를위한 솔루션이 아닌 MS 계정 만 지원하는 것 같습니다.

답변

0

Azure WebApp에서 웹 응용 프로그램의 Authentication/Authorization 기능을 활성화 한 것으로 보입니다. 따라서 사이트 간 요청을 수행하려는 경우 유용한 두 가지 방법이 있습니다. 현재 시나리오 Adal.js 또는 Adal-Angular를 사용

  1. , 당신의 코드를 변경하는 ADAL for JS의 README 내용을 따르십시오. 그리고 adal js 라이브러리를 소개하는 blog이 있습니다.
  2. 내 경험에 비추어 각도 요청 요청에 대해 immosearchweb.azurewebsites.net에 비슷한 인터페이스를 만들고 immosearchapi.azurewebsites.net에서 인터페이스를 호출하기 위해 자바의 HttpClient를 사용하여 & 요청 본문을 전달할 수 있습니다. 그것은 단순한 것 같다.
+0

인증은 분명히 문제의 근본 원인입니다. js 작동을 위해 ADAL을 관리했지만 백엔드 API에 인증 된 요청을 보내는 방법을 알 수 없습니다 (Azure 인증은 ** 실제로 ** 혼란 스럽습니다). 그래서 기본적으로 내 문제를 해결하지 못한다. 나는 여전히 403 응답을 얻는다. 어쩌면 옵션 2에 대한 정보가 있습니까? ADAL없이 인증 된 요청을 생성하려고합니까? –

관련 문제