SharePoint 2010 및 SAML 인증에 WHR 매개 변수 사용

최초 문서 게시일: 2011년 9월 15일 목요일

SharePoint 2010 SP1과 6월 CU의 수정 내용으로 인해 WHR 매개 변수를 사용할 수 있게 된 것이 맞느냐는 질문과 이로 인해 혼란을 느끼는 많은 사용자의 의견을 받았습니다. 제 자신도 가끔 헛갈리는 경우가 있는데요. 실제로 현재 WHR 매개 변수를 사용할 수는 있지만, 그러려면 다음과 같은 몇 가지 작업을 수행해야 합니다.

  1. SPTrustedIdentityTokenIssuer 구성

이제 SPTrustedIdentityTokenIssuer에는 UseWHomeRealmParameter라는 속성이 포함되는데, 이 속성을 true로 설정해야 SharePoint에서 WHR 매개 변수를 IdP로 전달할 수 있습니다. 다음은 이 속성을 true로 설정하기 위해 사용한 간단한 PowerShell 코드 조각입니다.

$ap = get-sptrustedidentitytokenissuer -identity "ADFS with Roles"
$ap.UseWHomeRealmParameter = $true
$ap.Update()

간단하죠? 이렇게 설정하면 SharePoint에서 검색된 WHR 매개 변수를 보냅니다.

  1. WHR 매개 변수를 추가하는 코드 작성 또는 작업 수행

제 경우에는 WHR 매개 변수 추가를 위한 HttpModule을 작성했습니다. 구체적으로는 다음과 같은 방법을 사용했습니다.

  • Init 오버라이드에서 BeginRequest 이벤트에 대한 처리기 추가
  • BeginRequest 이벤트의 코드에서 다음 사항 확인
    • 요청 대상이 _trust/default.aspx인지 여부, 그리고
    • 요청에 아직 WHR 매개 변수가 포함되어 있지 않은지 여부
  • 요청이 위에서 설명한 두 조건을 충족하는 경우 _trust/default.aspx로의 리디렉션 작성. 이 과정에서 수행한 작업은 다음과 같습니다.
    • 이전에 있었던 모든 쿼리 문자열 매개 변수 추가
    • 끝에 WHR 매개 변수 추가
    • Response.Redirect를 다시 _trust/default.aspx로 지정

이렇게 하면 WHR 매개 변수를 사용할 수 있습니다. 제 경우 IE의 Inprivate 브라우저 세션을 사용하여 이 과정을 테스트했는데, 이 세션에서는 잘못된 테스트 결과를 생성할 수 있는 인증 쿠키를 사용하지 않기 때문입니다. 지금까지는 모든 테스트가 정상적으로 완료되었습니다. Fiddler에서도 WHR 매개 변수가 ADFS(제 경우)로 정상 이동하는 것으로 확인되었습니다. 작업을 쉽게 시작하실 수 있도록 간단한 샘플 프로젝트의 소스 코드를 이 게시물에 첨부합니다.

이 문서는 번역된 블로그 게시물입니다. 원본 문서는 Using the WHR Parameter with SharePoint 2010 and SAML Auth를 참조하십시오.