다음을 통해 공유


연방 샘플

페더레이션 샘플은 페더레이션된 보안을 보여 줍니다.

샘플 세부 정보

WCF(Windows Communication Foundation)는 페더레이션된 보안 아키텍처를 통해 wsFederationHttpBinding배포할 수 있는 지원을 제공합니다. 요청 wsFederationHttpBinding /회신 통신을 위한 기본 전송 메커니즘으로 HTTP를 사용하고 텍스트/XML을 인코딩을 위한 유선 형식으로 사용하는 안전하고 안정적이며 상호 운용 가능한 바인딩을 제공합니다. WCF의 페더레이션에 대한 자세한 내용은 페더레이션을 참조하세요.

이 시나리오는 4개의 조각으로 구성됩니다.

  • BookStore 서비스

  • BookStore STS

  • HomeRealm STS

  • BookStore 클라이언트

BookStore 서비스는 두 가지 작업을 지원합니다. BrowseBooksBuyBook BrowseBooks 작업에 대한 익명 액세스를 허용하지만, BuyBooks 작업에 액세스하려면 인증된 액세스 권한이 필요합니다. 인증은 BookStore STS에서 발급한 토큰의 형식을 사용합니다. BookStore 서비스의 구성 파일은 클라이언트를 wsFederationHttpBinding을 사용하여 BookStore STS에 연결합니다.

<wsFederationHttpBinding>
<!-- This is the Service binding for the BuyBooks endpoint. It redirects clients to the BookStore STS -->
    <binding name='BuyBookBinding'>
        <security mode="Message">
            <message>
                <issuerMetadata
  address='http://localhost/FederationSample/BookStoreSTS/STS.svc/mex' >
                    <identity>
                        <dns value ='BookStoreSTS.com'/>
                    </identity>
                </issuerMetadata>
            </message>
        </security>
    </binding>
</wsFederationHttpBinding>

그런 다음 BookStore STS를 사용하려면 클라이언트가 HomeRealm STS에서 발급한 토큰을 사용하여 인증해야 합니다. 다시 말하지만, BookStore STS에 대한 구성 파일은 클라이언트를 wsFederationHttpBinding를 사용하여 HomeRealm STS로 가리킵니다.

<wsFederationHttpBinding>
 <!-- This is the binding for the clients requesting tokens from this STS. It redirects clients to the HomeRealm STS -->
    <binding name='BookStoreSTSBinding'>
        <security mode='Message'>
            <message>
                <issuerMetadata
address='http://localhost/FederationSample/HomeRealmSTS/STS.svc/mex' >
                    <identity>
                        <dns value ='HomeRealmSTS.com' />
                    </identity>
                </issuerMetadata>
            </message>
        </security>
    </binding>
</wsFederationHttpBinding>

작업에 액세스할 BuyBook 때 발생하는 이벤트 시퀀스는 다음과 같습니다.

  1. 클라이언트는 Windows 자격 증명을 사용하여 HomeRealm STS에 인증합니다.

  2. HomeRealm STS는 BookStore STS에 인증하는 데 사용할 수 있는 토큰을 발급합니다.

  3. 클라이언트는 HomeRealm STS에서 발급한 토큰을 사용하여 BookStore STS에 인증합니다.

  4. BookStore STS는 BookStore 서비스에 인증하는 데 사용할 수 있는 토큰을 발급합니다.

  5. 클라이언트는 BookStore STS에서 발급한 토큰을 사용하여 BookStore 서비스에 인증합니다.

  6. 클라이언트가 BuyBook 작업에 액세스합니다.

이 샘플을 설정하고 실행하는 방법에 대한 다음 지침을 참조하세요.

비고

이 샘플을 실행하려면 wwwroot 디렉터리에 대한 쓰기 권한이 있어야 합니다.

샘플을 설정, 빌드 및 실행하려면

  1. SDK 명령 창을 엽니다. 샘플 경로에서 Setup.bat실행합니다. 그러면 샘플에 필요한 가상 디렉터리를 만들고 적절한 권한이 있는 필수 인증서를 설치합니다.

    비고

    Setup.bat 일괄 처리 파일은 Windows SDK 명령 프롬프트에서 실행되도록 설계되었습니다. MSSDK 환경 변수는 SDK가 설치된 디렉터리를 가리킵니다. 이 환경 변수는 Windows SDK 명령 프롬프트 내에서 자동으로 설정됩니다. Windows Vista에서는 설정이 IIS 관리자 스크립트를 사용하므로 IIS 6.0 관리 호환성이 설치되어 있는지 확인해야 합니다. Windows Vista에서 설정 스크립트를 실행하려면 관리자 권한이 필요합니다.

  2. Visual Studio에서 FederationSample.sln 열고 빌드 메뉴에서 솔루션 빌드를 선택합니다. 이렇게 하면 일반적인 프로젝트 파일, Bookstore 서비스, Bookstore STS, HomeRealm STS가 빌드되고 IIS에 배포됩니다. 또한 Bookstore 클라이언트 애플리케이션을 빌드하고 실행 파일 BookStoreClient.exe FederationSample\BookStoreClient\bin\Debug 폴더에 배치합니다.

  3. BookStoreClient.exe두 번 클릭합니다. BookStoreClient 창이 표시됩니다.

  4. 책 찾아보기를 클릭하여 서점에서 사용할 수 있는 책을 찾아볼 수 있습니다.

  5. 특정 책을 구입하려면 목록에서 책을 선택하고 책 구입을 클릭합니다. 애플리케이션은 HomeRealm 보안 토큰 서비스에서 Windows 인증을 사용하여 시작하고 인증합니다.

    샘플은 사용자가 $15 이하의 책을 구매할 수 있도록 구성됩니다. $15 이상의 비용이 드는 책을 구입하려고 시도하면 클라이언트가 Book Store Service에서 액세스 거부 메시지를 받을 수 있습니다.

    비고

    샘플은 구매 후 사용자의 신용 한도를 업데이트하지 않습니다. 사용자의 (고정) 신용 한도 내에서 반복적으로 책을 구입할 수 있습니다.

정리하기

Cleanup.bat실행합니다. 이렇게 하면 설정 중에 생성된 가상 디렉터리를 삭제하고 설치 중에 설치된 인증서도 제거됩니다.