차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
tech:saml [2014/10/04 01:28] – 만듦 V_Ltech:saml [2016/07/12 00:56] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +{{tag>saml sso}}
 ====== Saml ====== ====== Saml ======
  
  
-SAML 기반의 web sso 원리 정리+SAML 기반의 web[[ sso]] 원리 정리
  
 Single Sign On을 지원하기 위한 프로토콜이나 방법은 여러가지가 있다. Single Sign On을 지원하기 위한 프로토콜이나 방법은 여러가지가 있다.
줄 14: 줄 15:
  
  
-{{image>http://cfile22.uf.tistory.com/image/2158923B51ADF4670B070B|}}+{{image>http://cfile22.uf.tistory.com/image/2158923B51ADF4670B070B}}
  
 Browser에서 사이트 SpA로 접속한다. Browser에서 사이트 SpA로 접속한다.
줄 35: 줄 36:
  
 여기서 두 가지 기술적인 이슈가 발생하는데  여기서 두 가지 기술적인 이슈가 발생하는데 
 +
 첫번째는 IdP에는 대규모 사용자를 지원할 경우, Session 정보를 어떻게 분산 저장할것인가이다. 첫번째는 IdP에는 대규모 사용자를 지원할 경우, Session 정보를 어떻게 분산 저장할것인가이다.
 WSO2 Identity server의 경우에는 각 instance의 memory에 이 session 정보를 저장하고, 자체 clustering feature를 이용하여 이 session을 상호 복제한다. Oracle WebLogic이나 Apache Tomcat cluster의 Http session clustering과 같은 원리이다. WSO2 Identity server의 경우에는 각 instance의 memory에 이 session 정보를 저장하고, 자체 clustering feature를 이용하여 이 session을 상호 복제한다. Oracle WebLogic이나 Apache Tomcat cluster의 Http session clustering과 같은 원리이다.
 이 경우에 각 instance의 메모리 size에 따라 저장할 수 있는 session의 수의 한계를 가지게 되고, instance간 session 복제로 인하여, 장애 전파 등의 가능성을 가지게 된다. 이 경우에 각 instance의 메모리 size에 따라 저장할 수 있는 session의 수의 한계를 가지게 되고, instance간 session 복제로 인하여, 장애 전파 등의 가능성을 가지게 된다.
 그래서 Shibboleth의 경우에는 이 Session 정보를 별도의 terracotta와 같은 data grid에 저장하도록 하여, 확장성을 보장할 수 있다. 그래서 Shibboleth의 경우에는 이 Session 정보를 별도의 terracotta와 같은 data grid에 저장하도록 하여, 확장성을 보장할 수 있다.
 +
 두번째는 로그 아웃에 대한 문제인다. 두번째는 로그 아웃에 대한 문제인다.
 Sp A나 Sp B에 SAML을 이용한 초기 인증이 성공한 경우, 제 로그인(인증)을 막기 위해서 자체적으로 HttpSession등을 사용하여, 별도의 log in session을 유지해야 하는데, 이경우 Sp A,Sp B의 Session Time out 시간이 다를 수 있기 때문에, 한 사이트에서 log out이 된 경우 전체 사이트에 걸쳐서 log out이 안될 수 있는 incosistency 문제가 발생한다. Sp A나 Sp B에 SAML을 이용한 초기 인증이 성공한 경우, 제 로그인(인증)을 막기 위해서 자체적으로 HttpSession등을 사용하여, 별도의 log in session을 유지해야 하는데, 이경우 Sp A,Sp B의 Session Time out 시간이 다를 수 있기 때문에, 한 사이트에서 log out이 된 경우 전체 사이트에 걸쳐서 log out이 안될 수 있는 incosistency 문제가 발생한다.
줄 44: 줄 47:
  
 SAML 기반의 SSO 솔루션은 대표적으로 SAML 기반의 SSO 솔루션은 대표적으로
-simplePHPSAML - 가장 널리 쓰이고, 사용이 쉽다. + 
-Shibboleth - java stack으로 구현이 되어 있으며, terracotta를 이용하여 session을 저장하기 때문에 상대적으로 확장성이 높다. +  * [[https://simplesamlphp.org/:|simplePHPSAML]] - 가장 널리 쓰이고, 사용이 쉽다. 
-WSO2 identity server - 앞에서도 언급하였듯이, 확장성에 문제가 있는 것으로 보이며, 자체 OSGi 컨테이너인 carbon 엔진 위에서 동작한다. SAML 뿐만 아니라 OAuth,STS 서비스를 추가 지원하며, Provisioning protocol인 SCIM도 함께 지원한다. 오픈 소스이지만, 제품 완성도가 매우 높고, 사용이 매우 쉽다. (모니터링,관리 기능등이 강점) +  * [[https://shibboleth.net/|Shibboleth]] - java stack으로 구현이 되어 있으며, terracotta를 이용하여 session을 저장하기 때문에 상대적으로 확장성이 높다. 
-Open AM - Sun IDM을 모태로 하여, 현재 오픈소스화 되었다. 아무래도 enterprise 제품을 기반으로 하다 보니 복잡도가 상대적으로 높다. +  WSO2 identity server - 앞에서도 언급하였듯이, 확장성에 문제가 있는 것으로 보이며, 자체 OSGi 컨테이너인 carbon 엔진 위에서 동작한다. SAML 뿐만 아니라 OAuth,STS 서비스를 추가 지원하며, Provisioning protocol인 SCIM도 함께 지원한다. 오픈 소스이지만, 제품 완성도가 매우 높고, 사용이 매우 쉽다. (모니터링,관리 기능등이 강점) 
-CAS - TBD+  Open AM - Sun IDM을 모태로 하여, 현재 오픈소스화 되었다. 아무래도 enterprise 제품을 기반으로 하다 보니 복잡도가 상대적으로 높다. 
 +  CAS - TBD
  
 [[http://bcho.tistory.com/755|조대협의 블로그  조대협 (CC by-nc-nd 2.0 kr)]] [[http://bcho.tistory.com/755|조대협의 블로그  조대협 (CC by-nc-nd 2.0 kr)]]
  
  
-{{tag>saml sso}}+