2008-10-02 5 views
21

우리는 인증을 위해 SOAP 헤더 (일반 클라이언트 자격 증명 포함)에 의존하는 프로덕션 환경의 SOAP 웹 서비스를 보유하고 있습니다. WS는 .NET/Java/PHP/Python/C++ 클라이언트와 함께 웹 응용 프로그램 또는 데스크톱 응용 프로그램과 함께 이기종 환경에서 사용됩니다.웹 서비스 인증 - 모범 사례?

우리는 WS에 대한 v2를 고려하고 있으며 무엇이 WS SOAP 인증을위한으로 간주 될지 궁금합니다. (합리적으로 안전하면서도 다양한 플랫폼에서 쉽게 처리 할 수 ​​있음).

답변

15

다양한 플랫폼에서이를 처리하는 가장 쉬운 방법은 전송 계층에 HTTP 기본 인증과 HTTPS를 사용하는 것입니다. WS-Security는 간단한 사용자 이름/암호를 뛰어 넘을 필요가 있지만 플랫폼 간의 지원이 상당히 다를 경우 유용 할 것입니다. HTTP 인증은 모든 알맞은 SOAP 구현에서 지원됩니다.

4

자신을 모두 굴려서 HTTPS를 사용할 수없는 경우 WS-Security의 해시 기반 UsernameToken 부분을 제안합니다. 라이브러리에 해싱 기능이있는 한 구현하기가 상당히 안전하고 쉽습니다.

웹 서비스를 수행 중이라면 인증을 위해 HTTP를 사용하지 않을 것입니다.

전체적으로 WS-Security가 너무 큽니다.

+1

기존 HTTP 인증에 의존하지 않는 이유는 https를 사용할 수없는 경우입니까? – Xailor

+0

@Xepoch는 사용자 이름과 pwd가 비누 헤더로 전송되는 기본 인증에 대해 이야기하고 있습니까? – Mou

+0

@David "WS-Security의 해시 기반 UsernameToken 부분"구현 방법을 알려주십시오. 당신이 어디에서 코드를 읽을 수 있고 내 PC에서 실행되는 코드를 다운로드 할 수있는 링크를 제공 할 수 있습니까? 감사 – Mou

2

내가 과거에이 문제를 해결 한 방법은 표준 WS- * 기능을 사용하는 것입니다.

인증 기능을 사용하는 대신 메시지 헤더 무결성 기능을 설정합니다. 이렇게하려면 대화 상자의 양쪽에서 공개/개인 키 쌍에 액세스 할 수 있어야하며 헤더의 사용자 이름 필드를 임의로 변경해야합니다. 따라서 메시지를 보낸 사람과 사용자 ID를 설정 한 사람이 개인 키에 액세스 할 수 있는지 확인할 수 있습니다.

키가 올바르게 관리되면 합리적인 수준의 무결성을 제공합니다.