로그인 맵핑

ibm-webservices-bnd.xmi XML(Extended Markup Language) 파일에 있는 로그인 맵핑은 맵핑 구성을 포함합니다. 이 맵핑 구성은 웹 서비스 보안 핸들러가 메시지 헤더에서 추출된 보안 토큰 내에 포함된 토큰 <ValueType> 요소를 해당 인증 메소드로 맵핑하는 방법을 정의합니다. 토큰 <ValueType> 요소는 SOAP 메시지 헤더에서 추출된 보안 토큰 내에 포함됩니다.

중요사항: 버전 5.x와 버전 6 이상 애플리케이션 간에는 중요한 차이가 있습니다. 정보는 WebSphere® Application Server 버전 6.0.x 이상에서 사용되는 버전 5.x 애플리케이션만 지원합니다. 버전 6.0.x 이상의 애플리케이션에는 이 정보가 적용되지 않습니다.

송신자 측 웹 서비스 보안 핸들러는 배치 디스크립터에 지정된 <AuthMethods> 요소를 기반으로 보안 토큰을 생성하고 첨부합니다. 예를 들어, 인증 메소드가 BasicAuth이면 송신자 측 보안 핸들러가 UsernameToken을 SOAP 메시지 헤더에 생성하고 첨부합니다(사용자 이름 및 비밀번호 사용). 웹 서비스 보안 런타임은 JAAS(Java™ Authentication and Authorization Service) javax.security.auth.callback.CallbackHandler 인터페이스를 보안 제공자로 사용하여 클라이언트 측에 보안 토큰을 생성합니다(또는 웹 서비스가 클라이언트로 사용되는 경우).

송신자 보안 핸들러는 javax.security.auth.callback.CallbackHandler 인터페이스 구현의 handle() 메소드를 호출합니다. 이 구현은 보안 토큰을 작성하고 토큰을 다시 송신자 보안 핸들러로 전달합니다. 송신자 보안 핸들러는 콜백 배열의 인증 정보를 기반으로 보안 토큰을 구성합니다. 그러면 보안 핸들러는 보안 토큰을 웹 서비스 보안 메시지 헤더에 삽입합니다.

필수 보안 토큰 생성에 사용한 CallbackHandler 인터페이스 구현은 ibm-webservicesclient-bnd.xmi 웹 서비스 보안 바인딩 파일의 <loginBinding> 요소에 정의됩니다. 예를 들어, 다음과 같습니다.
<loginBinding xmi:id="LoginBinding_1052760331526" authMethod="BasicAuth"
      callbackHandler="com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler"/>
<loginBinding> 요소는 com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler 인터페이스를 BasicAuth 인증 메소드와 연관시킵니다. WebSphere Application Server는 다양한 보안 토큰 유형 작성에 사용할 수 있는 다음 CallbackHandler 인터페이스 구현을 제공합니다.
com.ibm.wsspi.wssecurity.auth.callback.GUIPromptCallbackHandler
로그인 바인딩 정보에 기본 인증 데이터가 정의되지 않은 경우(이 정보는 HTTP 기본 인증 정보와는 다름) 이전 토큰 유형이 로그인 패널을 통해 사용자 이름 및 비밀번호를 프롬프트합니다. 구현은 로그인 바인딩에 정의된 기본 인증 데이터를 사용합니다. 이 CallbackHandler를 BasicAuth 인증 메소드와 같이 사용하십시오. CallbackHandler 구현은 서버에서 사용하지 마십시오. 로그인 바인딩 정보가 프롬프트되기 때문입니다.
com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler
기본 인증 데이터가 로그인 바인딩에 정의되지 않은 경우(이 정보는 HTTP 기본 인증 정보와는 다름) 구현은 표준 입력(stdin)을 사용하여 사용자 이름 및 비밀번호를 프롬프트합니다. 구현은 로그인 바인딩에 정의된 기본 인증 데이터를 사용합니다. 이 CallbackHandler 구현을 BasicAuth 인증 메소드와 같이 사용하십시오. CallbackHandler 구현은 서버에서 사용하지 마십시오. 로그인 바인딩 정보가 프롬프트되기 때문입니다.
제한사항: 다중 스레드 클라이언트가 있고 다중 스레드가 동시에 표준 입력에서 읽기를 시도하는 경우, 모든 스레드는 사용자 이름 및 비밀번호 정보를 성공적으로 가져오지 못합니다. 따라서, com.ibm.wsspi.wssecurity.auth.callback.StdinPromptCallbackHandler 구현은 다중 스레드가 표준 입력에서 동시에 데이터 확보를 시도할 수도 있는 다중 스레드 클라이언트와 같이 사용할 수 없습니다.
com.ibm.wsspi.wssecurity.auth.callback.NonPromptCallbackHandler
이 CallbackHandler 구현은 프롬프트하지 않습니다. 대신, 로그인 바인딩에 정의된 기본 인증 데이터를 사용합니다(이 정보는 HTTP 기본 인증 정보와는 다름). 이 CallbackHandler 구현은 BasicAuth 인증 메소드와 같이 사용되어야 합니다. 이 CallbackHandler 구현에 대해 로그인 바인딩 정보에 기본 인증 데이터를 정의해야 합니다. 이 구현은 웹 서비스가 클라이언트로 실행되고 기본 인증(<wsse:UsernameToken>)을 다운스트림 셀에 전송해야 하는 경우에 사용할 수 있습니다.
com.ibm.wsspi.wssecurity.auth.callback.LTPATokenCallbackHandler
CallbackHandler는 현재 WebSphere Application Server 보안 컨텍스트의 LTPA(Lightweight Third Party Authentication) 토큰을 run as JAAS 주제(Subject)(호출 주제(Subject))에서 생성합니다. 그렇지만 기본 인증 데이터가 로그인 바인딩 정보에 정의된 경우(HTTP 기본 인증 정보가 아님) 구현은 생성된 기본 인증 데이터와 LTPA 토큰을 사용합니다. 토큰 유형 URI토큰 유형 이름 값은 이 CallbackHandler 구현에 대해 로그인 바인딩 정보에 정의되어야 합니다. 토큰 값 유형은 요청 송신자에 대해 토큰의 유효성을 검증하고 수신자 바인딩 구성 요청에 사용됩니다. 웹 서비스 보안 런타임은 LTPA 토큰을 2진 보안 토큰(<wsse:BinarySecurityToken>)으로 메시지 SOAP 헤더에 삽입합니다. 값 유형은 필수입니다. (자세한 정보는 LTPA를 참조하십시오.) 이 CallbackHandler 구현을 LTPA 인증 메소드와 같이 사용하십시오.
그림 1은 요청 송신자 메시지 프로세스의 송신자 보안 핸들러를 보여줍니다.
그림 1. 요청 송신자 SOAP 메시지 프로세스요청 송신자 SOAP 메시지 프로세스
다중 인증 메소드와 다중 보안 토큰 유형을 지원하기 위해 수신자 측 보안 서버를 구성할 수 있습니다. 다음 단계는 요청 송신자나 SOAP 메시지 프로세스를 설명합니다.
  1. 메시지를 수신한 후 수신자 웹 서비스 보안 핸들러는 토큰 유형(메시지 헤더의)을 배치 디스크립터에 구성된 예상 토큰 유형과 비교합니다.
  2. 웹 서비스 보안 핸들러는 메시지 헤더에서 보안 토큰을 추출하고 토큰 <ValueType> 요소를 해당 인증 메소드로 맵핑합니다. 맵핑 구성은 ibm-webservices-bnd.xmi XML 파일의 <loginMappings> 요소에 정의됩니다. 예를 들어 다음과 같습니다.
    <loginMappings xmi:id="LoginMapping_1051977980074" authMethod="LTPA"
          configName="WSLogin">
         <callbackHandlerFactory xmi:id="CallbackHandlerFactory_1051977980081"
         classname="com.ibm.wsspi.wssecurity.auth.callback.WSCallbackHandlerFactoryImpl"/>
          <tokenValueType xmi:id="TokenValueType_1051977980081"
          uri="http://www.ibm.com/websphere/appserver/tokentype/5.0.2" localName="LTPA"/>
    </loginMappings>

    com.ibm.wsspi.wssecurity.auth.callback.CallbackHandlerFactory 인터페이스는 javax.security.auth.callback.CallbackHandler의 팩토리입니다.

  3. 웹 서비스 보안 런타임은 팩토리 구현 클래스를 시작하고 웹 서비스 보안 헤더의 인증 정보를 set 메소드를 사용하여 팩토리 클래스로 전달합니다.
  4. 웹 서비스 보안 런타임은 newCallbackHandler() 메소드를 호출하여 필수 보안 토큰을 생성하는 javax.security.auth.CallbackHandler 오브젝트를 확보합니다.
  5. 보안 핸들러가 LTPA BinarySecurityToken을 수신하면 WSLogin JAAS 로그인 구성 및 newCallbackHandler() 메소드를 사용하여 보안 토큰의 유효성 검증을 수행합니다. 예상된 토큰 유형이 SOAP 메시지, 웹 서비스 보안 헤더에 없으면 요청은 SOAP 결함으로 거부됩니다. 그렇지 않으면 토큰 유형은 JAAS 로그인 구성을 토큰 유효성 검증에 맵핑하는 데 사용됩니다. 인증이 성공하면 JAAS 주제(Subject)가 작성되고 실행 중인 스레드에 연관됩니다. 그렇지 않으면 요청이 SOAP 결함으로 거부됩니다.
    다음 테이블은 인증 메소드 및 JAAS 로그인 구성를 표시합니다.
    표 1. 인증 메소드 및 JAAS 로그인 구성. 인증 메소드는 토큰 유효성 검증을 위해 JAAS 로그인 구성을 맵핑합니다.
    인증 방법 JAAS 로그인 구성
    BasicAuth WSLogin
    Signature system.wssecurity.Signature
    LTPA WSLogin
    IDAssertion system.wssecurity.IDAssertion
    그림 2는 요청 수신자 메시지 프로세스의 수신자 보안 핸들러를 보여줍니다.
    그림 2. 요청 수신자 SOAP 메시지 프로세스요청 수신자 SOAP 메시지 프로세스
    기본 <LoginMapping>은 다음 파일에 정의됩니다.
    • 셀 레벨 ws-security.xml 및 서버 레벨 ws-security.xml 파일
    바인딩 파일 정보에 아무것도 정의하지 않은 경우, ws-security.xml 기본값이 사용됩니다. 그렇지만 관리자는 새 <LoginMapping> 요소를 바인딩 파일에 정의하여 기본값을 대체할 수 있습니다.
  6. 클라이언트는 ${install_dir}/properties/ws-security.xml 파일에서 기본 바인딩 정보를 읽습니다.
  7. 서버 런타임 컴포넌트는 다음 파일이 있는 경우 이를 로드합니다.
    • 셀 레벨 ws-security.xml 파일 및 서버 레벨 ws-security.xml 파일. 두 파일은 런타임에서 병합되어 한 개의 기본 바인딩 정보에 대한 한 개의 적용 세트로 양식화됩니다.

    기본 애플리케이션 서버에서 서버 런타임 컴포넌트는 서버 레벨의 ws-security.xml 파일만 로드합니다. 서버 측 ws-security.xml 파일 및 애플리케이션 웹 서비스 보안 바인딩 정보는 관리 콘솔을 사용하여 관리됩니다. 관리 콘솔을 사용하여 애플리케이션 배치 중에 바인딩 정보를 지정할 수 있습니다. 웹 서비스 보안이 배치 디스크립터 확장(ibm-webservicesclient-ext.xmi)에 정의되고 바인딩이 IBM® 바인딩 확장(ibm-webservicesclient-bnd.xmi)에 저장됩니다. 그렇지만 ${install_dir}/properties/ws-security.xml 파일은 클라이언트에 대한 기본 바인딩 값을 정의합니다. 바인딩 정보가 바인딩 파일에 지정되지 않으면 런타임은 기본 ${install_dir}/properties/ws-security.xml 파일에서 바인딩 정보를 읽습니다.


주제 유형을 표시하는 아이콘 개념 주제



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