ASP.NET 신뢰 당사자 응용 프로그램 빌드

WS-Federation 사양 1.2에 따라 이 시나리오를 수동 요청자 프로필이라고 합니다. 브라우저 클라이언트를 사용하여 폼 리디렉션을 수행하고 클라이언트에 WS-Trust 직렬화 논리가 없습니다. 여기서는 수동 페더레이션을 사용하는 ASP.NET 웹 응용 프로그램을 보호할 수 있는 다음 두 가지 방법을 제공합니다.

  1. FederatedPassiveSignIn 컨트롤을 사용합니다.

  2. <PassiveRedirect> 요소를 web.config 파일의 Microsoft.IdentityModel 구성 섹션에 추가합니다.

두 번째 방법을 사용할 때는 웹 응용 프로그램에서 WSFederationAuthenticationModule을 사용하도록 설정해야 합니다. 인증 세션을 유지하려면 SessionAuthenticationModule도 필요합니다. 자세한 내용은 WS-Federated 인증 모듈 개요를 참조하십시오.

페더레이션에 대한 로그인 페이지를 구성할 때는 1) FederatedPassiveSignIn 컨트롤 사용, (2) 수동 리디렉션을 위해 WS-FAM 구성이라는 두 가지 방법을 사용합니다.

방법 1: FederatedPassiveSignIn 컨트롤 사용

WIF는 웹 응용 프로그램을 클레임 기반 ID 모델과 손쉽게 통합하고 웹 응용 프로그램을 클레임 인식 응용 프로그램으로 만들 수 있는 FederatedPassiveSignIn 컨트롤을 제공합니다. 이 컨트롤에서 웹 응용 프로그램이 사용자를 리디렉션해야 하는 STS 주소를 지정하여 웹 응용 프로그램에서 STS로 인증 프로세스를 이동할 수 있습니다. STS의 응답을 수신하면 컨트롤이 응답에 나타난 보안 토큰을 인증합니다. 인증에 성공하면 나중에 호출할 때 STS로 다시 리디렉션할 필요가 없도록 호출자가 사용할 쿠키를 발급합니다. 쿠키가 만료되면 호출자는 STS에 다시 인증하여 새 보안 토큰을 받아야 합니다.

2005를 사용하는 경우 시작하기 전에 WIF 컨트롤을 Visual Studio 도구 상자에 설치하십시오. 도구 상자를 열어 해당 컨트롤을 마우스 오른쪽 단추로 클릭한 다음 **항목 선택...**을 선택하면 설치됩니다. 나타나는 대화 상자에서 .NET Framework 구성 요소 탭을 선택하고 오른쪽 위에서 찾아보기 단추를 클릭합니다. WIF 설치 폴더 안의 참조 어셈블리(Reference Assemblies) 디렉터리에서 Microsoft.IdentityModel.dll 어셈블리를 선택하고 열기를 클릭합니다. 그런 다음 확인을 클릭합니다. 표준 범주 아래의 도구 상자 창에 새 컨트롤이 나타납니다. 이 컨트롤 중 하나가 다음 단계에서 사용할 FederatedPassiveSignIn 컨트롤입니다.

  1. Visual Studio에서 FederatedPassiveSignIn 컨트롤을 도구 상자의 페이지에 추가합니다.

  2. Issuer 속성을 특정 토큰 발급자의 URL로 설정합니다.

  3. Realm 속성을 설정합니다. 이 속성은 STS가 신뢰 당사자 인스턴스를 확인하고 해당 토큰 발급 정책 및 암호화 인증서를 선택할 때 사용됩니다.

  4. 토큰의 유효성을 검사할 때 호출할 핸들러와 같은 이벤트 핸들러를 태그에 설정할 수 있습니다. 또한 토큰 인증을 성공적으로 수행한 후 쿠키를 사용자에게 반환할지(SignInModeSession으로 설정) 아니면 쿠키를 반환하지 않을지 여부도 지정할 수 있습니다. 후자의 경우 사용자가 새 요청을 만들 때 호출자가 STS로 다시 리디렉션됩니다(SignInModeSingle로 설정). 기본값은 Session입니다.

  5. 모양 범주에 있는 다양한 속성을 설정하면 컨트롤의 모양과 동작을 사용자 지정할 수 있습니다. 예를 들어 SignInButtonStyle 속성은 컨트롤을 클릭 가능한 이미지로 표시할지 렌더링된 페이지에서 단순 링크로 표시할지 여부를 결정합니다.

다음 샘플 코드는 FederatedPassiveSignIn 컨트롤의 태그를 보여 줍니다.

<wif:FederatedPassiveSignIn id="FederatedPassiveSignIn1" runat="server" Issuer="https://www.contoso.com:441/PassiveIdentityProvider/default.aspx" SignInButtonType="Link" Realm="https://www.contoso.com:441" OnSecurityTokenReceived="FederatedPassiveSignIn1_SecurityTokenReceived"> </wif:FederatedPassiveSignIn>

방법 2: <passiveRedirect> 요소를 사용하여 자동 호출자 로그인 수행

WS-FAM은 인증되지 않은 사용자 요청을 지정된 STS로 자동으로 리디렉션할 수 있는 <passiveRedirect> 구성 요소를 제공합니다. 수동 리디렉션을 사용하려면 federatedAuthentication 요소를 Microsoft.IdentityModel 섹션에 추가해야 합니다. 자동으로 수행되는 수동 리디렉션을 사용할 때는 두 개의 필수 특성이 필요합니다. issuer 특성은 토큰을 발급하는 STS를 지정합니다. realm 특성은 신뢰 당사자 ID를 STS에 제공합니다. 이 특성은 앞의 단원에서 설명한 FederatedPassiveSignIn 컨트롤의 IssuerRealm 속성과 동일한 의미로 사용됩니다. 다음 코드 샘플에서는 이 요소를 추가하는 방법을 보여 줍니다.

<federatedAuthentication enabled="true"> <passiveRedirect enabled="true" issuer="https://localhost/SimplePassiveSTS1/default.aspx" realm="https://localhost/ClaimsAwareWebApp1"></passiveRedirect> </federatedAuthentication>

자세한 내용은 ASP.NET 신뢰 당사자 응용 프로그램을 빌드하는 방법을 참조하십시오.