2008-08-19 7 views
3

WCF를 통한 인증을 구현하는 가장 좋은 방법은 무엇입니까?WCF를 통해 인증하는 가장 좋은 방법은 무엇입니까?

WS- *는 전송 독립적이어야하므로 사용하지 않는 것이 좋습니다.

"나만의"해야합니까? 그 일을하기위한 지침이 있습니까 (기사/블로그 게시물)?
에 어떤 방법이 있습니까?에는 서버 쪽에서 ASP.NET 멤버쉽 및 프로필 공급자가 내장되어 있습니까?

답변

0

왜 WS- *가 전송 의존적이어야합니까?

WS- * 사양의 전체 요점은 메시지의 일부이며 따라서 전송 독립적이라는 것입니다.

0

WS- *는 전송 독립적입니다. 그게 전부입니다.

인증은 서비스의 원하는 소비자가 누구인지에 따라 달라집니다. 필요하지 않은 보안으로 내부 서비스의 무게를 재는 것이 아니라 타사 사용자에 대한 특정 사항을 알아야하는 경우 추가 보안 계층을 추가하는 것이 유용합니다.

외부 API의 경우 인증서를 사용한 WS- * 인증과 간단한 인증 메커니즘 (사용자 이름과 암호가 제공되며 GUID 인증 토큰이 반환되고 사실 이후의 모든 요청과 함께 토큰이 제공됨)이 있습니다.

0

답장을 보내 주셔서 감사합니다.

전 교통에 의존하지는 않았지만 실수였습니다. 나는 소비자가 바인딩 할 엔드 포인트를 선택할 수 있기를 바랍니다. 그리고 basicHttpBinding과 netTcpBinding은 WS-를 지원하지 않기 때문에 서비스 수준에서 무언가를 사용해야합니다.

Davids 단순 인증은 내가 피하려고했던 것입니다. 이상적으로 모든 작업 계약에 토큰 인수를 추가하지 않고도 동일한 작업을 수행 할 수있는 방법을 원합니다.

2

WS-Security 기반의 메시지 기반 인증이 사용자가 찾고 있으며 basicHttpBinding 및 netTcpBinding에서 확실히 지원됩니다. WsHttpBinding만이 WS-Security를 ​​지원할 것이라는 잘못된 가정을하고 있다고 생각합니다. 이는 부정확합니다.

WS 바인딩은 WS-ReliableMessaging과 같은 WS-Security 이외의 WS- * 요소를위한 것입니다. 전송 독립적 인 메시지 보안을 설정하는 것은 보안 유지를 위해 여전히 까다로워 질 것입니다. 양방향이 아닌 전송의 경우 적어도 하나 이상의 인증서를 교환해야합니다.

메시지 보안이 basicHttpBinding에서 지원되지 않는다고 생각하는 다른 이유가있을 수 있습니다. basicHttpBinding은 전송 보안없이 UserName 인증을 사용하는 것을 허용하지 않습니다 (추가할만한 이유가 있습니다). 그리고 전송 보안은 본질적으로 전송 의존적이기 때문에 나는 그것을 피하려고 노력하고 있다고 생각합니다.

아무튼, 완전히 독립적으로 전송하려면 먼저 인증서를 가져 와서 첫 번째 (루트) 인증서를 어떻게 배포 할 것인지 또는 안전하게 작성해야하는지 태클해야합니다. 교환 증명서. 마스터 인증서를 배포 할 수있는 애플리케이션의 고급 스러움이 있다면 해당 경로를 선택하십시오. 그것보다 복잡한 시나리오에 있다면, 뒤로 물러나서이 문제가 얼마나 어려운지 생각해야합니다.

0

사용자 수준의 인증/권한 부여가 필요한 외부 서비스를 노출하는 경우 ASP.NET 공급자를 사용하는 것이 좋습니다.

ASP.NET 제공자의 원격 관리를 허용하는 유용한 유틸리티 here이 있습니다. ASP.NET 솔루션은 SQL을 필요로합니다 ...

관련 문제