2011-08-10 5 views
1

우리는 Java/J2EE 기술로 실행되는 포틀릿을 보유하고 있습니다. 사용자 인증이 필요한 HTTP 요청을 통해 다른 응용 프로그램/시스템과 상호 작용합니다. 현재 솔루션은 포털에서 로그인 한 사용자의 사용자 이름과 암호를 검색하고이 정보를 "HTTPClient"API를 사용하여 백엔드 시스템에 전달하여 사용자의 인증 및 권한 부여를 기반으로 컨텐츠를 검색합니다.SiteMinder 및 HTTP 클라이언트 - 사용자 로그인 정보

포털 사이트 마이너를 활성화하려는 노력이 있습니다. site minder enablement를 사용하면 Portal은 더 이상 로그인 한 사용자의 사용자 이름과 암호를 제공하지 않습니다. 포틀릿이 로그인 토큰이나 쿠키 값을 전달할 수 있도록 백엔드 애플리케이션에 사이트 마이너가 활성화되어있는 것이 가장 이상적입니다.

백엔드 애플리케이션이 SiteMinder를 사용할 수있을 때까지 임시 접근 방식을 찾고 있습니다. 사용자가 사용자 이름과 암호를 입력하도록 설정/강제 할 수있는 방법이 있습니까? 포틀릿 코드 (HTTP 클라이언트를 사용하면 응용 프로그램의 백엔드 URL에 액세스하므로 브라우저가 아닙니다) 때문에 이러한 가능성을 생각할 수 없습니다. 내가 생각할 수있는 한 가지 가능한 방법은 사용자가 포틀릿 내에 사용자 이름과 암호를 입력하고 Java 코드를 통해 백엔드 시스템을 인증하는 데 사용하는 새 화면 (UI)을 개발하는 것입니다. 다른 아이디어가 있으면 알려주십시오.

또한 질문이 혼란 스럽다면 알려 주시기 바랍니다.

감사

답변

2

Siteminder를 연결 HTTP 헤더에있는 응용 프로그램 (UID, 이메일 주소 등)에 동적으로 사용자 정보를 제공 할 수 있습니다. 이 동작은 Siteminder Policy Server에 구성됩니다. 기본적으로 HTTP 헤더 SM_USER (또는 유사)에는 인증 된 사용자의 사용자 이름이 포함됩니다.

그런 다음 포틀릿 코드를 변경하여 요청에서 해당 헤더를 가져온 다음 이전과 같이 백 엔드 응용 프로그램에 제공해야합니다.

1

사용자 추적에 SM_USER 헤더 사용을 권하지 않습니다. SM_USER는 신임 콜렉터에 제공된 ID를 포함하며 사용 된 인증 스 5의 유형에 따라 변경됩니다.

예 : UserID 대신 이메일 주소를 수집하는 HTML 양식 기반 인증 스키마가있는 경우 이메일 주소가 SM_USER 헤더로 전송됩니다. X.509 인증 스키마의 경우 인증서의 SubjectDN이 SM_USER 헤더에 있습니다.

SM_UNIVERSALID 헤더는 항상 Universal ID 특성을 포함하므로 더 나은 선택이 될 것입니다. Universal ID 속성은 사용자 디렉토리 객체에서 구성됩니다 (일반적으로 "uid"로 설정 됨).