사용자가 사용하려는 서비스 인증방법을 별도의 SSO Agent가 대행해주는 방식
a. 대상 서비스의 인증 방식을 변경하기 어려울 때 사용
b. 대상 서비스의 인증 방식을 전혀 변경하지 않음
c. 서비스 인증 정보를 에이전트가 관리
예를 들자면,
Target Server 1을 로그인 할 때 User1이 alice/alice라는 ID/ PWD가 필요하다면,
에이전트가 이 정보를 가지고 있고, User1이 Target Service 1에 접근할 때
에이전트가 대신 alice/alice ID/PWD 정보를 전달해서 로그인을 시켜주는 방식
신뢰관계(Trust-relationship)를 토대로 사용자를 인증한 사실을 전달받아 SSO를 구현하는 방식
a. 통합 인증을 수행하는 곳에서 인증을 받음
b. 토큰(Token)을 발급 받아 사용하려는 서비스에 접근할 때 토큰을 자동으로 전달
c. 해당 서비스가 사용자를 확인할 수 있도록 하는 방식임
• 웹에서는 쿠키(Cookie)를 이용해 토큰을 자동으로 서비스에 전달할 수 있다.
모든 웹에서 Propagation 방식이 모두 적용될 수는 없으며, 특히 웹 애플리케이션의 변경이 전혀 불가능하고 사용자 통합이 어려운 경우 Delegation 방식을 사용하게 됨
• 사용하려는 서비스가 많고 애플리케이션의 특성들이 다양한 경우 Delegation 방식과 Propagation 방식을 혼용
a. 통합 인증을 받은 사용자는 토큰을 발급
b. 토큰은 Cookie Domain에 Cookie로 설정
c. Cookie Domain 내의 다른 서비스로 접근할 때 자동으로 토큰을 서비스에 제공
d. 서비스에서 동작되는 SSO 에이전트는 토큰으로부터 사용자 신원을 확인하고 요청된 자원에 대한 접근을 허가
=> 루트 도메인에 등록된 모든 서브 도메인에서도 접근 가능
a. Multi Domain 환경인 경우에는 사용자 인증 및 토큰의 발행을 위한 마스터 에이전트가 존재
b. 마스터 에이전트는 각 서비스 에이전트의 사용자 인증을 위임 받아 수행
c. 인증된 사용자에게는 토큰을 발급하고 각 서비스 에이전트에게 안전하게 전달함
d. 에이전트가 해당 토큰을 자신의 Domain에서 Cookie로 저장해 사용할 수 있도록 함
=> 여러 루트 도메인에 접근 가능