페더레이션 서비스는 다른 ADFS 역할 서비스와 별도로 설치할 수 있는 ADFS(Active Directory Federation Services)의 역할 서비스입니다. 페더레이션 서비스는 보안 토큰 서비스로 작동합니다. 컴퓨터에 페더레이션 서비스 역할 서비스를 설치하면 이 컴퓨터는 페더레이션 서버가 됩니다. 또한 이 컴퓨터의 관리 도구 메뉴에서 ADFS(Active Directory Federation Services) 스냅인을 사용할 수 있습니다. ADFS 스냅인에 대한 자세한 내용은 ADFS(Active Directory Federation Services) 스냅인 사용을 참조하십시오.

페더레이션 서비스는 AD DS(Active Directory 도메인 서비스)를 사용해서 보안 토큰에 대한 요청에 응답하여 토큰을 제공하도록 되어 있습니다. 이를 통해 Active Directory 도메인과 포리스트는 다음과 같은 역할을 수행할 수 있습니다.

  • 규격 계정 파트너 및 리소스 파트너와 페더레이션할 수 있는 ID 공급자. ID 공급자로서 페더레이션 서비스는 인터넷을 통해 Active Directory ID를 표시하여 규격 서비스 공급자의 응용 프로그램과 상호 작용합니다.

  • 규격 계정 파트너 및 리소스 파트너와 페더레이션할 수 있는 서비스 공급자. 서비스 공급자로서 페더레이션 서비스는 다른 조직의 ID를 통해 파트너의 Windows 기반 및 ASP.NET 기반 응용 프로그램에 액세스할 수 있습니다.

  • WS-F PRP(WS-Federation Passive Requestor Profile) 사양을 준수하는 응용 프로그램에 대한 보안 토큰 공급자

계정 파트너로서 페더레이션 서비스는 사용자가 파트너 조직의 리소스에 액세스할 수 있도록 해 줍니다. 리소스 파트너의 요청에 따라 페더레이션 서비스는 사용자 자격 증명을 수집하고 AD DS 또는 Active Directory LDS(Lightweight Directory Services) 인스턴스에 대해 확인합니다. 그런 다음 페더레이션 서비스는 사용자 계정의 LDAP(Lightweight Directory Access Protocol) 특성에 따라 조직 클레임의 집합을 채울 수 있습니다. 그리고 나서 조직 클레임은 리소스 파트너에 적합한 클레임에 매핑되고 페더레이션 서비스의 토큰 서명 인증서에 의해 서명된 보안 토큰으로 패키징됩니다. 이렇게 생성된 보안 토큰은 리소스 파트너의 원래 요청에 대한 응답으로 게시됩니다. 그러면 리소스 파트너가 토큰을 사용하여 사용자에 대한 액세스를 허용합니다.

리소스 파트너로서 페더레이션 서비스는 반대 역할을 수행합니다. 사용자가 ADFS 보호 응용 프로그램에 액세스하려고 할 때 페더레이션 서비스는 사용자를 인증해야 하는 계정 파트너를 결정합니다. 그런 다음 해당 파트너에게 인증 요청을 보냅니다. 사용자가 보안 토큰과 함께 반환되면 페더레이션 서비스는 파트너가 해당 토큰을 올바르게 서명했는지 확인합니다. 그리고 나서 토큰에서 클레임을 추출합니다. 해당 클레임이 조직 클레임에 매핑되고 특정 응용 프로그램에 대한 필터링 정책이 적용됩니다. 필터링된 조직 클레임은 페더레이션 서비스의 토큰 서명 인증서에 의해 서명되거나 웹 응용 프로그램에 대한 Kerberos 세션 키로 보호된 보안 토큰으로 패키징됩니다. 이렇게 생성된 보안 토큰은 원래 응용 프로그램 URL(Uniform Resource Locator)로 다시 게시됩니다. 그러면 응용 프로그램이 토큰을 사용하여 사용자에 대한 액세스를 허용합니다.

ADFS는 WS-F PRP 프로토콜을 사용하여 페더레이션 서비스가 웹 응용 프로그램에 발급한 보안 토큰에 클레임을 전달합니다. WS-F PRP 사양에 대한 자세한 내용은 ADFS 관련 리소스를 참조하십시오.

이러한 클레임은 처음에 두 가지 계정 저장소인 AD DS 또는 AD LDS 계정 저장소로부터 채워집니다. 페더레이션 서비스는 제시된 자격 증명에 따라 토큰을 발급합니다. 계정 저장소가 사용자의 자격 증명을 확인하면 트러스트 정책의 규칙에 따라 사용자에 대한 클레임이 생성됩니다. 페더레이션 서비스는 인바운드 클레임을 리소스 파트너에 적합한 아웃바운드 클레임에 매핑합니다. 이와 같은 클레임 매핑은 리소스 파트너에게 발급된 보안 토큰에 추가됩니다. 클레임에 대한 자세한 내용은 클레임 이해를 참조하십시오.

페더레이션 서비스가 토큰을 확인하면 인증 쿠키가 발급되고 클라이언트 브라우저에 기록됩니다. 클라이언트가 인증될 때마다 페더레이션 서비스는 이 쿠키를 사용하므로 클라이언트는 자격 증명을 다시 입력할 필요가 없습니다. 이를 통해 SSO(Single Sign-On)가 구현됩니다. 쿠키에 대한 자세한 내용은 ADFS에서 사용하는 쿠키 이해를 참조하십시오.

페더레이션 서비스 웹 페이지

페더레이션 서비스는 사용자가 인증될 수 있는 적절한 계정 파트너를 선택할지 확인하는 웹 페이지를 제공합니다. 또한 페더레이션 서비스는 양식 기반의 인증을 위해 사용자 이름과 암호 같은 사용자의 자격 증명을 확인하는 웹 페이지를 제공합니다. Windows 통합 인증을 지원하는 웹 페이지도 제공됩니다.

페더레이션 서비스는 웹 페이지 뒤에서 클라이언트 또는 페더레이션 서버 프록시의 요청을 처리하는 Microsoft ASP.NET 웹 서비스를 제공합니다. 페더레이션 서버 프록시는 경계 네트워크에 위치하여 인터넷 클라이언트와 인트라넷의 페더레이션 서비스 간의 중재 역할을 합니다. 페더레이션 서버 프록시의 역할에 대한 자세한 내용은 페더레이션 서비스 프록시 역할 서비스 이해를 참조하십시오.

페더레이션 서비스가 응답하는 요청에는 다음과 같이 기본적인 두 가지 유형이 있습니다.

  • 보안 토큰을 발급하라는 요청

  • 트러스트 정책 데이터를 검색하라는 요청

계정 파트너 검색

계정 파트너 검색은 여러 개의 단일 계정 파트너가 구성된 경우 사용자가 인증을 위해 선호하는 계정 파트너를 확인할 수 있는 프로세스입니다. 페더레이션 서버는 트러스트 정책에 구성된 대로 계정 파트너 이름이 있는 드롭 박스로 이러한 선택 사항을 클라이언트 브라우저에 제공합니다.

계정 파트너 검색을 방지하기 위해 사용할 수 있는 한 가지 메커니즘은 액세스하고 있는 리소스에 대한 쿼리 문자열에 whr 매개 변수를 포함하는 것입니다. 예를 들면 다음과 같습니다.

https://webserver/testapp/testpage.aspx?whr=urn:federation:<accountpartner>

여기서 <accountpartner>는 클라이언트의 계정 파트너 영역을 나타냅니다.

whr 매개 변수를 사용하면 리소스 페더레이션 서버가 매개 변수를 제거하고 쿠키를 클라이언트 브라우저에 기록하여 향후 요청 시 이 설정을 기억합니다. 그런 다음 요청은 이전에 한 번도 제공되지 않았던 것과 같은 방식으로 진행됩니다.


목차