2016-10-17 2 views
4

HTTPS를 사용하여 ASP.NET OData 끝점에 액세스하는 데 문제가 있습니다. ASP.NET 사이트는 OWIN을 통해 호스팅됩니다. OData (v3) 부분에 NuGet 패키지 인 Microsoft.AspNet.WebApi.OData를 사용하고 있습니다. SSL 종료는 별도의로드 밸런서에서 서버 외부에서 수행됩니다. https://api.my-domain.com/odata/v3ASP.Net OData가 LB의 SSL 종료와 함께 실패 함

을하지만이 중 하나로, OData 클라이언트 (예를 들어, Excel 또는 PowerBI)를 사용하는 경우, 액세스는 일반 메시지와 함께 실패한다 :

벌금 REST 클라이언트 (예 : 우편 배달부)과 함께 하나로, OData 끝점을 작품에 액세스 호스트가 강제로 연결을 종료했습니다.

은 또한 난 이죠 통해 엔드 https://api.my-domain.com/odata/v3 액세스 할 때, I는 (LB)에 의해 차단된다 (아래 참조 니펫) 정상 HTTP 엔드 지칭 일부 XML 메타 데이터를 수신 할 것으로

<?xml version="1.0" encoding="utf-8"?> 
<service xml:base="http://api.my-domain.com/odata/v3" xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom"> 
<workspace> 
    ... 

는 또한 I는 와이어 샤크 함께 엑셀/PowerBI에서 트래픽을 스니핑 및 HTTPS 함께 초기 요청 후 (상기 메타 데이터에 도시 된 바와 같이) 클라이언트가 정상 HTTP 포인트를 사용하는 것을 발견했다. 나는 OData 프로토콜 세부 사항에 익숙하지 않지만 클라이언트가 메타 데이터로 주소를 결정하고 있다고 생각한다.

검증을 위해 나는 LB에서 포트 80를 차단 해제 봐라, 엑셀/PowerBI 성공적으로 내가 초기 요청에 대해 HTTP 또는 HTTPS를 사용하는 관계없이 경우, 연결할 수 있습니다.

그러나이 문제를 해결하는 방법 (나는 에 트래픽을 허용하고 싶지 않습니다). https URI를 사용하여 메타 데이터를 생성하도록 ASP.NET OData 미들웨어에 지시 할 수 있습니까?

답변

0

비슷한 질문이 제기되어 여기에 나온 것처럼 보입니다. Override host of webapi odata links. 이게 당신의 문제를 해결합니까?

+1

여기에 나와있는 해결책은 http://stackoverflow.com/a/35658839/4017964가 유망 해 보인다. 그러나 나는 의견에서 논의 된 것과 동일한 이슈를 가지고있다. 이전 서비스 루트와 새 서비스 루트가 연결됩니다. – Henrik

+1

이 http://stackoverflow.com/a/35782947/4017964 OData 응답 내에서 생성 된 링크를 수정하는 데 도움이되었습니다. 그러나 메타 데이터 응답은 여전히 ​​https 대신 http를 사용합니다. – Henrik

관련 문제