2014-06-23 1 views
0

일종의 서버 역할을하는 Netty 4.x 프레임 워크를 사용하는 어플리케이션이 있습니다. 인증은 연합되어야하므로 SAML2.0 서비스 제공자로 변환해야합니다.Netty 어플리케이션을 SAML2.0 서비스 제공자 엔드 포인트로 변환하는 옵션

몇 가지 연구를했는데 기존 SAML2.0 솔루션 (예 : OpenAM, PingFederate)을 사용하려면 서비스 제공 업체가 웹 컨테이너가 아닌 웹 컨테이너에서 실행되는 웹 응용 프로그램이어야합니다. 내 프로젝트의 경우. 사실입니까?

저는 싱글 사인온 (Single Sign On) 및 페더레이션 (Federation) 세계에 새로운 것을 알게되었습니다. 나는 모든 정보와 팁을 진심으로 감사드립니다.

답변

0

SAML은 일반적으로 두 사이트간에 공통 "세션"을 유지하기 위해 브라우저를 사용합니다.

  • 한 사이트 A.org 브라우저에서 세션 A를 시작합니다 다음과 같이

    이 수행됩니다.

  • SAML 인증이없고 SAML ID 공급자에 게시됩니다.
  • 브라우저에 SSO 세션이없고 로그인 양식이 표시됩니다.
  • 로그인 양식을 작성한 후 SSO 세션 ID로 사이트 A.org에 다시 게시됩니다 (so 말하자면).
  • 이제 사이트 B.net의 동일한 브라우저에서 새 세션 B가 시작되면 다시 SAML ID 공급자에 게시됩니다. 이제 SAML ID 공급자는 반환 할 기존 SSO 세션 ID를 갖습니다.

SAML ID 제공 업체에 게시 된 양식이 자동으로 게시되고 반환 된 인증도 자동으로 게시 된 양식입니다. 크로스 사이트 스크립팅의 종류.

SAML 서블릿 필터는이 결과를 받아들이고 응용 프로그램 요청에 UserPrinciepal을 넣을 수 있습니다.

구성이 그리 어렵지 않습니다. "서버"에 대해 고유 한 키 쌍이 필요합니다.

올인 올 (All-in-all) 시간이 많이 걸렸습니다. 그것은 또한 그들 자신의 Identity 제공자를 설정하는 것을 도왔습니다. Java EE 서버 세계 외부의 보안 솔루션 인 Apache Shiro는 SAML에서 작업 할 당시 SAML 솔루션이 없었습니다.

데모 IdP 및 SP가 실행중인 경우 모든 것을 바로 가기가 너무 어렵지 않아야합니다. 어쩌면 FireFox를 TamperData 부가 기능과 함께 사용하여 통신을 검사 할 수 있습니다.

+0

훌륭한 설명을 주셔서 감사합니다. Joop. 내 질문 : 1. 나는이 "SAML 서블릿 필터"가 SP 측에서 작동하지만 내 Netty 응용 프로그램은 서블릿이 될 수 없다고 가정하므로이 목적을 위해 별도의 모듈을 가지고 있어야합니다. 이것을하기위한 일반적인 관행은 무엇인지 알고 있습니까? 2. IdP에 액세스 할 수 있습니다. 해결하려는 문제는 내 응용 프로그램을 SP로 작동시키는 방법입니다. – user3466814

+0

실상 IdP/SP1/SP2를 사용하면 도움이됩니다. 데이터 교환은 아마도 간단하며, 템플릿으로 복사하고 아파치 HttpClient를 사용하여 채워진 텍스트를 게시하는 것은 간단해야합니다. _ (여전히 인내심을 개발할 필요가 있습니다.) _ –