서블릿 보안 메소드

인증, 로그인, 로그아웃, getRemoteUser, isUserInRole 및 getAuthType 서블릿 보안 메소드는 javax.servlet.http.HttpServletRequest 인터페이스의 메소드입니다.

인증

참고: 인증, 로그인 및 로그아웃 서블릿 보안 메소드는 이 WebSphere® Application Server 릴리스에서 Java™ Servlet 3.0의 새로운 기능입니다.

인증 메소드는 서블릿 컨텍스트에 대해 구성된 WebSphere Application Server 컨테이너 로그인 메커니즘을 사용하여 사용자를 인증합니다.

인증 메소드의 구문은 다음과 같습니다.
boolean authenticate(HttpServletResponse response))
이전 예제에서는 다음 요소를 사용합니다.
응답
HttpServletRequest와 연관된 HttpServletResponse입니다.

인증이 설정되거나 인증에 성공한 경우 인증 메소드는 true를 리턴합니다.

인증이 불완전하고 기본 로그인 메커니즘이 응답에서 사용자에게 리턴될 메시지 및 HTTP 상태 코드를 커미트한 경우 인증 메소드는 false를 리턴합니다.

응답을 작성하는 동안 오류가 발생하면 java.io.IOException이 발생합니다.

인증에 실패하면 ServletException이 발생하고 호출자는 오류(예: 기본 로그인 메커니즘이 사용자에게 리턴할 메시지 및 HTTP 상태 코드를 설정하지 않음) 처리에 책임이 있습니다.

문제점 방지 문제점 방지: 인증 메소드가 호출되면 다음 사항을 알아야 합니다.
  • WebSphere Application Server가 클라이언트에게 HTTP 401 코드를 리턴합니다.
  • 메소드는 서블릿 컨텍스트에 대해 구성되는 WebSphere Application Server 컨테이너 로그인 메커니즘에 따라 다릅니다. 예를 들어, 이 서블릿에 대해 양식 로그인이 정의되어 있는 경우 사용자 이름 및 비밀번호에 대한 프롬프트를 표시합니다. 클라이언트는 인증을 위해 WebSphere Application Server에 사용자 ID 및 비밀번호를 전송합니다.
중요사항: 인증 메소드가 다른 서비스 호출을 위해 새 주제를 사용하기 전에 true를 리턴하는지 확인하십시오. 예를 들어 다음과 같습니다.
Boolean authResultTrue = req.authenticate(response);
		if (!authResultTrue) {
	return;
        } else {
	// Use the new invocation subject to call other services.
	      }			
 
gotcha

로그인

로그인 메소드는 WebSphere Application Server에 대해 사용자 ID 및 비밀번호를 사용하여 사용자를 인증합니다. 인증에 성공하면 이 메소드는 스레드 및 LTPA(Lightweight Third Party Authentication) 쿠키에서 사용자 주제를 작성합니다(싱글 사인온(SSO)이 사용 설정된 경우).

로그인 메소드의 구문은 다음과 같습니다.
login(java.lang.String username, java.lang.String password)
이전 예제에서는 다음 요소를 사용합니다.
username
사용자의 로그인 ID에 해당하는 문자열 값
비밀번호
사용자의 비밀번호입니다.

구성된 로그인 메커니즘이 사용자 이름 및 비밀번호 인증을 지원하지 않고 ID가 이미 인증되었거나(로그인 호출 전) 제공된 사용자 이름 및 비밀번호의 유효성 검증에 실패한 경우 ServletException이 발생합니다.

참고: 보안 사용자 정의 특성 com.ibm.websphere.security.webAlwaysLogin을 true로 설정할 수 있으며 이미 인증되었더라도 사용자 이름 및 비밀번호로 WebSphere 애플리케이션에 대해 인증합니다.

보안 사용자 정의 특성 수정에 대한 자세한 정보는 글로벌 보안 구성 또는 보안 도메인 구성 문서에서 기존 사용자 정의 특성 수정의 내용을 읽어 보십시오.

참고: 로그인 메소드는 WebSphere Application Server에 대한 인증에 항상 사용자 ID 및 비밀번호를 사용하고 HttpServletRequest에 있는 SSO 정보도 사용합니다.
문제점 방지 문제점 방지: 인증 및 로그인 메소드는 새 주제에 대해 호출 주제를 설정합니다. 호출자 주제가 널인 경우 호출자 주제를 새 주제로 설정하십시오. 호출자 주제가 널이 아닌 경우 호출자 주제는 새 주제로 설정되지 않습니다.

인증 및 로그인 메소드는 호출 주제를 새 주제로 설정하므로 배치 디스크립터에서 실행 도구 속성에 의해 정의되는 RunAs, 보안 어노테이션 또는 동적 어노테이션은 무시됩니다.

gotcha

로그아웃

로그아웃 메소드는 WebSphere Application Server에서 사용자를 로그아웃시키고 HTTP 세션을 무효화합니다. 이 프로세스 중에 WebSphere Application Server는 다음 프로세스를 완료합니다.
  • SSO가 사용으로 설정된 경우 LTPA 쿠키를 지웁니다.
  • HTTP 세션을 무효화합니다.
  • 인증 캐시에서 사용자를 제거합니다.
  • 스레드에서 사용자 주제를 제거합니다.
  • 호출자 및 호출 주제를 지웁니다.
  • 인증 유형을 null로 설정합니다.

로그아웃 후 보호 웹 자원에 액세스하려면 재인증이 필요하고 getUserPrincipal, getRemoteUser 및 getAuthType 메소드가 null을 리턴해야 합니다.

로그아웃 메소드의 구문은 다음과 같습니다.
logout()

로그아웃에 실패하면 ServletException이 발생합니다.

인증, 로그인 및 로그아웃 메소드에 대한 감사 이벤트 유형

인증, 로그인 및 로그아웃 메소드를 감사하려면 일부 감사 이벤트 유형 파일을 작성하거나 확장해야 합니다. 이러한 이벤트 유형은 기본 이벤트 유형 파일의 일부가 아닙니다.

표 1. 인증, 로그인 및 로그아웃 메소드에 대한 감사 이벤트 유형.

인증, 로그인 및 로그아웃 메소드에 필요한 감사 이벤트 유형은 다음과 같습니다.

메소드 감사 이벤트 이름 이벤트의 감사 결과
인증/로그인 SECURITY_AUTHN SUCCESS 및 또는 FAILURE
로그아웃 SECURITY_AUTHN_TERMINATE SUCCESS
로그아웃 SECURITY_AUTHN_TERMINATE FAILURE

isUserInRole

(문자열 역할 이름): 원격 사용자에게 지정된 보안 역할이 부여되면 true를 리턴합니다. 원격 사용자에게 지정된 역할이 부여되거나 사용자가 인증되지 않으면 false를 리턴합니다.

getRemoteUser

getRemoteUser 메소드는 사용자가 인증된 경우 요청을 한 사용자의 로그인을 리턴합니다. 사용자가 인증되지 않은 경우 getRemoteUser 메소드는 null을 리턴합니다.

getAuthType

getAuthType 메소드는 서블릿을 보호하는 데 사용되는 인증 스킴의 이름을 리턴합니다. 서블릿이 보호되지 않는 경우 getAuthType 메소드는 null을 리턴합니다.

사용되는 인증 스킴은 다음과 같습니다.
FORM
양식 기반 인증이 사용되는 경우입니다.
BASIC
기본 인증이 사용되는 경우입니다.
CLIENT_CERT
클라이언트 인증서 인증이 사용되는 경우입니다.
참고:
getRemoteUser 및 getAuthType 메소드 둘 다의 경우 리턴되는 데이터는 서블릿이 배치된 애플리케이션 서버에서 보안이 사용으로 설정되는지 여부에 따라 다릅니다. 다음과 같은 가능성이 있습니다.
  • 애플리케이션 보안이 사용으로 설정되고 서블릿이 보호되는 경우 getRemoteUser 메소드는 로그인을 리턴하고 getAuthType 메소드는 구성된 인증 스킴을 리턴합니다.
  • 애플리케이션 보안이 사용으로 설정되지 않은 경우 두 메소드 모두 null을 리턴합니다.

주제 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_secgetru
파일 이름:rsec_secgetru.html