2009-12-14 5 views
4

저는 WCF에 비교적 익숙하며 WCF를 통한 비즈니스 계층 작업을 노출하는 응용 프로그램에서 인증을 구현하는 가장 좋은 (또는 가장 정확한) 방법에 대한 의견을 원합니다.엔터프라이즈 아키텍처의 WCF 서비스에서 인증을 구현하는 가장 좋은 방법은 무엇입니까?

토큰을 전달해야하며, 사용자 이름/암호를 암호화하고 매번 확인해야합니까? 또는 무엇을해야합니까?

또한 링크를 사용해 주시면 감사하겠습니다.

답변

2

한 가지 매우 중요한 보안 고려 사항은 WCF의 보안이 두 가지 수준의

메시지 보안

  • 아이디/비밀번호
  • 토큰
  • Windows 자격 증명
  • 클라이언트 인증서
  • 에서 작동한다는 것입니다

운송 보안

  • 서비스 인증서
  • 등유효한 사용자로 사용자를 인증하기 위해 일반적으로 통신 및 메시지 계층을 보호하기 위해 전송 계층 보안을 사용하고, 자신의 권한을 승인

그것의 좋은 연습을 (난 정말 다른 COS 1에만 사용 필자 잘 모릅니다) . 서비스 계약은 다음과 같이 정의되는 경우 모든 호출에서 인증 여부

이 결정되는 나는 그것의 가장 효율적으로 PerCall을 사용하는 것이 좋습니다

  • 싱글
  • PerService
  • PerCall

하드웨어 자원을 사용하지만 이는 상황에 따라 크게 달라집니다.

0

내가 사용하는 것을 알고있다 : ASP.NET 멤버쉽 프레임 워크를 사용하여 WCF와의 인증을 수행한다. 현재 OpenID 및 다른 공급자가 시스템에이 인증 유형에 대한 ASP.NET 멤버십을 다시 생각하게 만들려고합니다.

그러나 자신의 계정을 제어하는 ​​경우 ASP.NET 멤버쉽을 사용할 것입니다.

1

WCF는 인증 및 후속 승인을위한 많은 메커니즘을 제공합니다.

인증 방법 : LAN의 회사 방화벽을 사용하고있는 경우 똑바로 Windows 자격 증명을 사용하는 것이 가장 쉽습니다. 기억하고 보낼 수있는 지저분한 사용자 이름/암호가 없어도 그대로 사용할 수 있습니다. 이것은 Windows 그룹 멤버쉽 시스템에 대한 권한 확인과 결합 될 수 있습니다. 특정 사용자 그룹 만 작업을 수행 할 수 있습니다.

인터넷 연결 서비스를 사용하는 경우 사용자 이름/암호 체계 또는 인증서 중에서 선택할 수 있습니다. 표준 사용자 이름/암호 체계는 ASP.NET 2.0이 가져온 ASP.NET 멤버쉽 시스템 (인증 (멤버쉽) 및 권한 부여 (역할 공급자) 모두)에 대해 검사 할 수 있습니다.

매우 제한된 외부 사용자를 다루는 경우 인증서가 유용합니다 (예 : busiens 파트너 또는 그와 같은. 인증서는 "대역 외"클라이언트에게 전달되어야합니다. 다른 방법으로, 디스크 또는 무언가에 의해. 그러나 일단 설치되면 사용 및 확인이 원활합니다.

Juval Lowy ("Programming WCF Services"저자)는 MSDN의 Declarative WCF Security이라는 훌륭한 기사에서 5 가지 보안 시나리오, 사용 방법 및 보안 방법을 강조하며 WCF에 대한 선언적 확장 기능도 제공합니다 단순히 서비스 계약에 속성을 적용하면됩니다.

1

최근에 일부 미디어 미리보기 서비스를 위해 다소 큰 WCF 서비스 레이어를 구현했습니다. 우리가 인터넷에 대해 노출하고 있기 때문에 Windows 인증은 옵션이 아닙니다. 우리는 이미 기존 사용자/역할 시스템을 보유하고 있었기 때문에 ASP.NET 멤버십 공급자를 사용하지 않기로 결정했습니다.

사용자 인증/권한 부여 모듈을 구현하고 전송 계층 보안 요소로 SSL을 사용했습니다. WCF 특성을 사용하여 표준 WCF 인프라를 사용하여 역할 사용 권한을 확인할 수 있습니다.

http://blogs.msdn.com/pedram/archive/2007/10/05/wcf-authentication-custom-username-and-password-validator.aspx

http://www.leastprivilege.com/CustomPrincipalsAndWCF.aspx

http://www.samuelotter.com/node/7

: 내 방법은 목표에 점점 나를 도와

링크

관련 문제