2013-03-21 3 views
1

Help! :) 나는 정확한 정확한 용어를 사용하지 않고 있다면 다음과 같은 작업 (사전에 사과)을 얻으려고 노력하는 데 문제가 없다. :)WCF 채널 팩토리 및 웹 로직 서비스에서 SAML2 토큰 사용

나는 .NET 웹 응용 프로그램 (클라이언트) 통신이 필요하다. Weblogic 웹 서비스는 SAML 2 정책으로 보호됩니다. .NET 3.5/4를 사용해야하고 WIF (확장 기능 포함)를 사용하여 SAML2 토큰을 생성하도록 구성된 ADFS2와 함께 작업해야한다는 제한이 있습니다.

웹 사이트 -> adfs2 -> SAML2 토큰 비트가 지금까지 제대로 작동 중입니다. 토큰을 확실히 사용하고 있습니다.

추가 (1) - Weblogic 서비스는 sender-vouches 확인 방법을 구현하는 SAML2 정책을 사용해야하며 기본적으로 ADFS 2가 베어러를 제공하지만 전선을 통해 토큰을 보내기 전에 SAML 어설 션을 조작 할 수 있습니다 서비스 (들)에.

추가 (2) - 여러 가지 이유로 인해 웹 서비스에 SSL을 통해 도달하지 못했고 basicHTTPBinding이 유일한 옵션입니다.

이제 문제는입니다. 요청에서 토큰을 보내는 방식으로 Weblogic과 통신 할 수 없습니다 (기록 된 시도는 오라클을 반환합니다 "일반 웹 서비스 보안 오류"가 없기 때문에). 유효한 보안 헤더). 우선적 인 접근 방법은 채널 팩터 리를 사용하는 WCF를 통해 이루어집니다. 아래 코드는 WIF 확장 프로그램과 함께 제공되는 코드 샘플에서 claimidentity/token stuff를 가져온 것입니다.

에서 다음 게시물 대답 (그리고 다른 곳에서 내가 발견 할 수있었습니다) : WCF and WebLogic SAML interop

는 내가 뭘 정확히 ..is -하지만 고객을 구현하여 WireShark로 OR로 트래픽을 볼 수 있는지 여부 MessageInspector에서 "BeforeSendRequest"의 요청을 보면 의 기호가 표시되지 않습니다 (요청이 거부 됨). 결과로 에드).

또한 보낸 사람 - 보증서를 포함하도록 토큰을 조작하거나 처음 그대로 그대로 두어도 상관 없습니다.

추가 (3) : ADFS2/SAML/WIF/WCF 등을 사용하지 않고보다 기본적인 WSE2.0/3.0 웹 참조를 사용하면 Weblogic 서비스와 성공적으로 통신 할 수있었습니다. 접근법 (예 : SoapRequest, UserName 토큰 등 생성)

문제는 사용자 상호 작용없이 유효한 사용자 이름과 암호를 제공하는 것입니다. 즉, "SSO 접근 방식"을 유지하고 매번 사용자 자격 증명을 얻기 위해 폼 인증 (또는 이와 동등한 방식)을 구현할 필요가 없습니다. WSE에서 ADFS에 의해 생성 된 SecurityToken을 사용하는 분명한 방법이없는 것 같습니다 어느 쪽 이건 ..

누군가가 약간의 빛을 비출 수 있습니까? 제공된 토큰을 사용하는 WCF 채널 팩토리 방식이 단순히 작동하지 않는 이유, 즉 디버깅 할 때 유효한 토큰의 표시가없고 웹 로직이받은 올바른 SAML 토큰이없는 이유입니다.

또한 CustomMessageEncoder 라우트를 살펴보고 SOAP 헤더에 SAML 어설 션을 추가하는 방법을 살펴 보았습니다. 그러나 내가 알아낼 수 있었던 것부터는 그렇게 어렵지 않을 것입니다. WCF의 무언가가 고장 났습니까?

+0

Hello Mac. 세 번째 사항 (추가 (3))에 관해서는 아마도이 해결 방법을 제안 할 수 있습니다. .NET 클라이언트의 사용자 자격 증명을 가져올 수있는 경우 "Authorization : Basic encodedCredentials"헤더를 통해 HTTP 요청에 포함시킵니다. 나는 그것이 최선의 방법은 아니라는 것을 알고 있지만 ... – Gaucho

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 추가 (3)는 사용자가 웹 사이트에 로그인 할 때 자신의 자격 증명을 입력하는 것을 피할 필요가 있기 때문에 실제로 최후의 수단입니다. 실제 두통은 SAML2/Channelfactory 접근 방식이 작동한다고 가정하지만, 그렇지 않습니다. (아마도 기본 HTTPP 바인딩 설정이나 사용할 수있는 사용자 지정 동작이있을 수 있지만 실제로는 무엇인지 확실하지 않습니다. –

+0

좋아, 내 문제에 기여한 요소의 조합처럼 보입니다.이 시점에서 변경할 수없는 대상 웹 서비스의 구성에 따라 제한이있는 것은 아닙니다. 다시 그리기 게시판으로 돌아갑니다. –

답변

0

끝점 바인딩 제한 (basicHTTP)은 SAML2 afaik 및 ADFS2를 지원하지 않습니다.0은 베어러 토큰을 제공하고 사실이 비 스타트 (non-starter) 이기만하면 토큰을 수정하는 것처럼 보입니다. WIF에서 제안 된 오버라이드는 예상대로 작동하지 않는 것 같습니다. 마지막으로 웹 서비스가 https 뒤에 있지 않기 때문에 없음의 보안 모드 (사용할 수있는 유일한 옵션)는 토큰이 어쨌든 전송되지 않는다는 것을 의미했습니다. 아하, 다시 드로잉 보드로 돌아갑니다!