2012-05-04 4 views
1

ASP.NET 웹 응용 프로그램이 WCF 서비스와 통신하는 데 필요한 인증 옵션은 무엇입니까?ASP.NET 및 WCF 인증 옵션

시나리오 :

  1. 사용자가 ASP.NET의 형태로 사용자 이름과 암호를 입력합니다.
  2. ASP.NET은 사용자를 인증하기 위해이를 WCF로 전달해야합니다.
  3. 인증되면 사용자는 웹 사이트에서 작업을 수행 할 수 있습니다. 각 동작에는 다른 WCF 작업으로 데이터를 보내야합니다. WCF는 각 호출에서 사용자가 누구인지 알아야합니다.

가장 쉬운 방법은 사용자 이름/암호를 ASP.NET 세션 상태로 저장하는 것입니다. 그러나 암호는 서버의 메모리에 저장되므로 안전하지 않습니다.

이 WCF가 ASP.NET 외에도 다른 클라이언트에서 소비 될 가능성이 있기 때문에 인증서를 사용하여 ASP.NET "클라이언트"를 인증하려고하지 않습니다.

내가 지금까지 본 가장 좋은 제안은 WIF (Windows Identity Foundation)를 사용하는 것입니다. 이를 위해서는 STS가 필요합니다. MSDN에 따르면 Microsoft는 Visual Studio를 통해 STS를 설정하지 않는 것이 좋습니다. 일부 환경에서는 Active Directory를 사용할 수 있고 다른 환경에는 사용자 지정 사용자 저장소가있을 수 있으므로 배포 환경에서 STS를 사용할 수 있다고 보장 할 수는 없습니다. 사용자 지정 사용자 저장소에 대해 인증하도록 사용자 지정 STS를 설정할 수 있습니까? 이 작업을 수행하는 데 필요한 설명서를 찾는 데 문제가 있습니다.

WIF 사용 외에 다른 옵션이 있습니까? 기본 WCF 서비스에 대해 인증하는 데 사용할 수있는 토큰을 반환하는 사용자 지정 WCF 인증 서비스는 어떻습니까?

답변

1

이 작업을 수행하는 표준 방법은 Microsoft의 STS 즉 WIF와 함께 WIF를 사용하는 것입니다. Active Directory Federation Services v2.0 (ADFS)

예를 들어 몇 가지 맞춤 STS가 있습니다. Identity Server. 이것은 SQL DB를 속성 저장소로 사용합니다. 오픈 소스이므로 사용자가 필요로하는 모든 것에 적응할 수 있습니다.

사용자 지정 특성 저장소 (AD FS 2.0 Attribute Store Overview)를 만들 수 있습니다.

TechNet WIF/WCF : WIF and WCF.