저는 하루 종일 WCF 보안에 대해 읽었으며 편안하다고 말할 수 없습니다.WCF 보안 - 초보자 질문 -
일부 WCF 서비스를 개발하여 테스트 서버에 배포했으며 클라이언트에서 호출 할 수 있습니다. 양측 C#/VS 2010. 서비스는 IIS 6에서 호스팅됩니다. 최근에 갈 옵션이 없습니다.
그래서 저는 IIS 6에서만 HTTP를 사용할 수 있다고 읽었습니다 - 저는 basicHttpBinding 또는 wsHttpBinding을 바인딩으로 제한합니다.
나는 basicHttpBinding이 아니지만 wsHttpBinding을 사용하여 유선을 통해 전송 된 XML이 암호화되었음을 읽었습니다.
그래서 나는 일종의 인증을 원할 것이고 wsHttpBinding과 같이 가고 싶고 사용자 이름/암호가 들어오는 메시지와 함께 전달된다고 생각합니다.
첫 번째 질문은 - wsHttpBinding을 사용하면 클라이언트가 https를 사용하여 호출해야합니까? 그런 다음 서버의 인증서 등을 걱정해야합니까?
두 번째 질문은 - 어떤 보안 옵션을 사용할 수 있습니까? 발신자가 서버의 Windows 사용자 여야 만합니까? 아니면 자신의 사용자 이름/암호를 만들어 서비스 및 서비스의 해당 부분에 유효성 검사를 수행하고 Windows 사용자와 관련이 없어도됩니까? Windows 사용자와 함께해야만하는 경우 서버에 하나의 사용자 계정을 설정하고 모든 발신자가 사용하는 것이 일반적이라고 생각하십니까?
기본 아이디어는 선택한 발신자에게이 서비스를 개방해야하지만 누구도 서비스를 발견하고 호출 할 수 없도록하려는 것입니다. 누가 서비스를 호출하는지 어떻게 든 제어해야합니다. 사용자 이름/암호가이를 수행하는 표준 방법입니까? 예를 들어 모든 호출자가 전달해야하는 GUID를 정의 할 수 있습니까?
안녕하세요, 마이크, 빠른 답장을 보내 주셔서 감사합니다. 내가 이해할 수없는 한 가지는 HTTP를 사용하여 message에 securityMode를 설정할 수 있다는 것입니다.이 경우 암호화 된 메시지가 아닙니까? 이 기본 인증을 살펴 보겠습니다. 또 다른 것은 명확하지 않습니다. basicHttpBinding을 동일한 방식으로 보안 할 수 있다면 왜 wsHttpBinding을 선택하겠습니까? basicHttpBinding이 더 큰 도달 범위를 제공하지 않을까요? 발신자를 인증 할 수있는 한 어떤 기술이 나를 부르는지 상관하지 않습니다.다시 감사드립니다, Ray – RBrowning99
메시지 보안을 사용하면 메시지 본문이 암호화됩니다. 여전히 인증서를 필요로하며 HTTPS보다 느린 성능을 제공 할 수도 있습니다. 주로 대상 서비스에 도달하기 전에 여러 중개자간에 메시지가 전달되는 복잡한 시나리오에서 사용됩니다. wsHttpBinding과 기본 HttpBinding은 둘 다 SOAP 바인딩입니다. basic은 기본 SOAP 만 지원하지만 wsHttpBinding은 SOAP를 기반으로 구축 된 여러 가지 WS- * 프로토콜을 지원합니다. 신뢰할 수있는 메시지 등 기본 기능을 사용하면 이러한 고급 기능이 필요하지 않은 경우 일반적으로 더 나은 도달 범위를 제공합니다. REST는 당신에게 더 넓은 도달 범위를 줄 것입니다 ... –
그 마이크에 대한 환호. basicHttpBinding 및 securityMode = Transport와 함께 뭔가가 있습니다. 나는 sslDiag를 사용하여 자체 인증서를 만들었습니다. 내 다음 단계는 clientCredentialType = Basic을 설정하는 것입니다. 그런 다음 클라이언트가 사용자 이름을 전달해야하는 방법을 확인합니다. Windows 사용자가 아닌 경우 어떻게 서비스에서 가로 채고 유효성을 검사합니까? 고마워 레이 – RBrowning99