다른 asp.net에서 호스팅되는 WCF 서비스를 사용하는 asp.net 웹 응용 프로그램을 빌드하는 방법에 대한 의견을 보내고 싶습니다. 신청. 두 응용 프로그램은 같은 컴퓨터에 있지만 WCF 서비스가있는 응용 프로그램은 외부에서 액세스 할 수 없습니다. 로드 밸런서 뒤에로드를 공유하는 두 개의 웹 서버가 있습니다.권장 사항 및 ASP.NET + WCF + 보안에 대한 도움이 필요합니다.
두 응용 프로그램의 응용 프로그램 풀은 동일한 로컬 사용자 계정 (웹 서버는 도메인의 일부가 아님)을 사용하므로 클라이언트와 내부 wcf 서비스 간의 통신을 위해 Windows 보안과 함께 WsHttpBinding을 사용하려고합니다.
fron-end asp.net 앱은 사용자 정의 멤버십/역할 공급자를 통한 폼 인증을 사용하여 사용자를 인증하고 권한을 부여합니다. 사용자 데이터베이스는 SQL Server 데이터베이스에 있습니다.
어떻게 든 wcf 서비스에 사용자 세부 정보 (사용자 이름 + 역할)를 전달하여 프런트 엔드에 로그인 한 사용자의 역할에 따라 인증하고 권한을 부여 할 수 있어야합니다. 나는 "지원 토큰"을 사용해야한다고 읽었지 만 이것을 어떻게 사용하는지 알지 못했습니다.
나는 또한 클레임과 WIF에 대해서도 읽었는데 흥미로운 것 같지만 어떻게 내 시나리오에서 이것을 사용할 수 있을지 모르겠다.
아키텍처에 대한 권장 사항을 제공하고 wcf 서비스에 사용자 이름을 전달하는 방법을 보여줄 수도 있고 클레임 기반 권한을 사용하는 것이 가능한지 알려줄 수있는 사람은 누구입니까?
답장을 보내 주셔서 감사합니다. 나는 netTcpBinding이 웹 서버가 불행히도 IIS6을 실행하는 옵션 원인이라고 생각하지 않습니다. 프런트 엔드 웹 응용 프로그램에 로그인하는 사용자의 사용자 이름을 wcf 서비스에 전달하려면 지원 토큰을 전달해야합니다. 하지만 불행히도 나는 그것을 설정할 수 없습니다, 그것은 인증서와 함께 문제가 있어야합니다 ... 나는 메시지가 서버 컴퓨터를 떠나지 않을 것이므로이 시나리오에서 전혀 필요합니까? – skyplusplus
@skyplusplus : 웹 서버는 WCF 클라이언트로 작동하며, WCF 서비스를 호출합니다. 이 경우 netTcpBinding을 사용하는 데 문제가 없습니다! 유일한 요점은 WCF 서비스가 다른 쪽에서 자체 호스팅되어야하고 IIS6에서 호스팅되지 않아야한다는 것입니다. NetTcpBindign을 사용하려면 그만한 가치가 있습니다. –
네, 그런 식으로 진행할 것입니다. 즉, Windows 서비스에서 wcf 서비스를 호스팅하고 netTcpBinding을 사용하여 노출합니다. 맞습니다. wcf 서비스는 로컬에서만 액세스되므로 호출자를 신뢰할 수 있으므로 헤더에 사용자 ID를 추가하는 것이 좋습니다. 건배 – skyplusplus