2014-12-09 2 views
1

을 사용할 때 azure 에뮬레이터가 외부 장치에서 액세스합니다. 글쎄, 나는이 질문을 게시하고 대답하는 평소에하지 않는 일을 할 것입니다. 다른 사람에게 도움이되는 경우에 대비해서. 누군가가 더 쉬운 방법을 찾으면 기꺼이 받아 들일 것입니다.azure 웹 사이트가 oauth (google + sign-in) 및 https

요구 사항 : -

  • 테스트를 위해 외부 장치에서 푸른 에뮬레이터에서 실행되는 웹 사이트에 액세스 할 필요가있다.
  • 웹 사이트에서 oauth를 사용합니다.
  • 웹 사이트는 https 만 사용합니다.

문제 : -

  1. 푸른 에뮬레이터 지역에 바인딩합니다.
  2. Google+ 로그인은 유효한 출처와 리디렉션 URI를 확인합니다.

답변

1

외부 테스트를 수행하기 위해이 모든 과정을 거쳐야하는 것은 약간 미친 것처럼 보입니다. 아마 그것은 1 개의 큰 야크 면도 운동이었습니다. 그래서 쉬운 방법이 있다면 기꺼이 받아 들일 것입니다.

문제 1에 대한 해결책은 옵션의 수, 사용되는 간단한이있다, 합리적으로 간단 netsh를 (33,333 가정하면 방화벽을 통해 액세스 할 수 있으며 44300은 HTTPS 포트를 enpoint 일부 임의의 사용 가능한 포트입니다 하늘빛이 듣고있다) :

C:\WINDOWS\system32>netsh interface portproxy add v4tov4 listenport=33333 connectaddress=localhost connectport=44300 protocol=tcp 

이것은 azure 에뮬레이터가 연결이 로컬 장치에서 온다고 생각하게 할 것이다.

google + sign-in과 같은 oauth를 사용하는 경우에도 문제 2이 표시됩니다. 이는 서버가 보내는 리디렉션 URL의 호스트 이름이 Google이 예상하는 것과 일치하지 않기 때문입니다. 해결책은 다음과 같습니다. -

  1. 로컬 네트워크에 대한 도메인을 구성하십시오. test.com. Google +가 리디렉션 URI의 IP 주소를 허용하지 않기 때문에 필요합니다.
  2. 편집 ServiceDefinition.csdef는 푸른 엔드 포인트에 대한 hostheader을 설정 : 이 에뮬레이터가 실행되고 푸른 컴퓨터의 이름입니다 <Binding name="Endpoint3" endpointName="HttpsEnd" hostHeader="station.test.com" /> . http://station.test.com:33333/Account/ExternalLoginCallback
  3. 실행 비주얼 스튜디오와 같은 관리자 :
  4. 구성 구글 + 올바른 리디렉션 URL, 예컨대에 동의합니다. 관리자로 실행해야합니다. 그렇지 않으면 ServiceDefinition의 hostHeader가 작동하지 않습니다. https://station.test.com:33333

참고 :

관련 문제