차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
tech:saml [2014/10/04 01:28] – 만듦 V_L | tech:saml [2016/07/12 00:56] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | {{tag> | ||
====== Saml ====== | ====== Saml ====== | ||
- | SAML 기반의 web sso 원리 정리 | + | SAML 기반의 web[[ sso]] 원리 정리 |
Single Sign On을 지원하기 위한 프로토콜이나 방법은 여러가지가 있다. | Single Sign On을 지원하기 위한 프로토콜이나 방법은 여러가지가 있다. | ||
줄 14: | 줄 15: | ||
- | {{image> | + | {{image> |
Browser에서 사이트 SpA로 접속한다. | Browser에서 사이트 SpA로 접속한다. | ||
줄 35: | 줄 36: | ||
여기서 두 가지 기술적인 이슈가 발생하는데 | 여기서 두 가지 기술적인 이슈가 발생하는데 | ||
+ | |||
첫번째는 IdP에는 대규모 사용자를 지원할 경우, Session 정보를 어떻게 분산 저장할것인가이다. | 첫번째는 IdP에는 대규모 사용자를 지원할 경우, Session 정보를 어떻게 분산 저장할것인가이다. | ||
WSO2 Identity server의 경우에는 각 instance의 memory에 이 session 정보를 저장하고, | WSO2 Identity server의 경우에는 각 instance의 memory에 이 session 정보를 저장하고, | ||
이 경우에 각 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등을 사용하여, | Sp A나 Sp B에 SAML을 이용한 초기 인증이 성공한 경우, 제 로그인(인증)을 막기 위해서 자체적으로 HttpSession등을 사용하여, | ||
줄 44: | 줄 47: | ||
SAML 기반의 SSO 솔루션은 대표적으로 | SAML 기반의 SSO 솔루션은 대표적으로 | ||
- | simplePHPSAML - 가장 널리 쓰이고, 사용이 쉽다. | + | |
- | Shibboleth - java stack으로 구현이 되어 있으며, terracotta를 이용하여 session을 저장하기 때문에 상대적으로 확장성이 높다. | + | * [[https:// |
- | WSO2 identity server - 앞에서도 언급하였듯이, | + | * [[https:// |
- | Open AM - Sun IDM을 모태로 하여, 현재 오픈소스화 되었다. 아무래도 enterprise 제품을 기반으로 하다 보니 복잡도가 상대적으로 높다. | + | |
- | CAS - TBD | + | |
+ | | ||
[[http:// | [[http:// | ||
- | {{tag> | + |