보안 속성 전파를 위해 사용자 정의 인증 토큰 구현

이 주체에서는 로그인 제목 및 전파된 다운스트림에 설정되는 사용자 고유의 인증된 토큰 구현을 작성하는 방법을 설명합니다.

이 태스크 정보

이 구현을 사용하면 사용자 정의 로그인 모듈 또는 애플리케이션이 사용할 수 있는 인증 토큰을 지정할 수 있습니다. 다음 태스크 중 하나를 수행할 경우 사용자 고유의 구현 작성을 고려하십시오.
  • 사용자 고유의 구현 내에서 속성을 고립시키십시오.
  • 사용자 정의 직렬화를 사용하여 정보를 직렬화하십시오. 대상에서 바이트를 직렬화 해제하고 해당 정보를 다시 스레드에 추가해야 합니다. 이 태스크에는 암호화 및 복호화가 포함될 수도 있습니다.
  • getUniqueID API(Application Programming Interface)를 사용하여 제목의 전체적인 고유성에 영향을 미칩니다.
중요한: 사용자 정의 인증 토큰 구현은 보안 런타임에서 사용되지 않습니다. WebSphere® Application Server 인증을 시행합니다. WebSphere 응용프로그램 보안 런타임은 다음 상황에서만 이 토큰을 사용합니다.
  • 직렬화를 위해 getBytes 메소드를 호출합니다.
  • 인증 토큰을 직렬화할지 여부를 판별하기 위해 getForwardable 메소드를 호출합니다.
  • 고유성을 위해 getUniqueId 메소드를 호출합니다.
  • 직렬화된 바이트를 다운스트림으로 전송되는 토큰 홀더에 추가하기 위해 getName 및 getVersion 메소드를 호출합니다.
다른 모든 용도는 사용자 정의 구현입니다.

사용자 정의 인증 토큰을 구현하려면 다음 단계를 완료해야 합니다.

프로시저

  1. AuthenticationToken 인터페이스의 사용자 정의 구현을 작성하십시오.
    AuthenticationToken 인터페이스를 구현하기 위해 여러 가지 메소드를 사용 가능합니다. 그러나 AuthenticationToken 인터페이스 및 토큰 인터페이스가 필요로 하는 메소드가 완전히 구현되는지 확인하십시오. 이 인터페이스를 구현한 후에는 이를 app_server_root/classes 디렉토리에 놓을 수 있습니다. 또는 클래스를 개인 디렉토리에 놓을 수 있습니다. 그러나 WebSphere Application Server 클래스 로더가 해당 클래스를 찾을 수 있는지와 적절한 권한이 부여되어 있는지를 확인하십시오. 이 클래스를 포함하는 JAR(Java™ 아카이브) 파일 또는 디렉토리를server.policy 파일을 작성하여 클래스가 서버 코드에 필요한 필수 권한을 갖도록 합니다.
    팁: 전파 프레임워크에 의해 정의된 모든 토큰 유형에는 유사한 인터페이스가 있습니다. 토큰 유형은 com.ibm.wsspi.security.token.Token 인터페이스를 구현하는 마커 인터페이스입니다. 이 인터페이스는 대부분의 메소드를 정의합니다. 둘 이상의 토큰 유형을 구현할 계획이면 com.ibm.wsspi.security.token.Token 인터페이스를 구현하는 추상 클래스를 작성할 것을 고려하십시오. 인증 토큰을 포함하여 모든 토큰 구현은 추상 클래스를 확장할 수 있고 그러면 대부분의 작업이 완료됩니다.

    구현을 보려면 AuthenticationToken 인터페이스, 참조 예: A com.ibm.wsspi.security.token.AuthenticationToken 구현.

  2. WebSphere Application Server 로그인 중에 사용자 정의 인증 토큰을 추가하고 수신하십시오.
    이 태스크는 일반적으로 사용자 정의 로그인 모듈을 다양한 애플리케이션 및 시스템 로그인 구성에 추가하여 수행됩니다. 그러나 정보를 직렬화 해제하기 위해서는 사용자 정의 로그인 모듈에 플러그인해야 합니다. 오브젝트가 로그인 모듈에서 인스턴스화된 후에는 커미트 메소드 동안에 오브젝트를 제목에 추가할 수 있습니다.

    전파할 제목에 정보만 추가하려면 다음을 참조하세요. 보안 속성 전파를 위한 사용자 정의 Java 직렬화 가능 객체 전파. 정보가 전파되는지 확인하려면 자체 사용자 정의 직렬화를 수행하거나 제목 캐싱 용도를 위해 고유성을 지정하고, 사용자 고유의 인증 토큰 구현 작성을 고려하십시오.

    코드 샘플 예: 사용자 정의 인증 토큰 로그인 모듈 에서는 로그인이 초기 로그인인지 전파 로그인인지 확인하는 방법을 보여줍니다. 이러한 로그인 유형 간의 차이는 WSTokenHolderCallback 콜백에 전파 데이터가 포함되는지 여부입니다. 콜백에 전파 데이터가 포함되지 않으면 새 사용자 정의 인증 토큰 구현을 초기화하고 이를 제목에 설정하십시오. 콜백에 전파 데이터가 포함되는 경우에는 사용자의 특정 사용자 정의 인증 토큰 TokenHolder 인스턴스를 찾아보고, 바이트 배열을 다시 사용자 정의 AuthenticationToken 오브젝트로 변환하고, 이를 다시 제목에 설정하십시오. 코드 샘플은 두 인스턴스를 모두 보여줍니다.

    로그인 모듈의 커미트 단계에서 인증 토큰을 읽기 전용으로 만들 수 있습니다. 토큰을 읽기 전용으로 만들지 않으면 속성은 애플리케이션 내에 추가될 수 있습니다.

  3. 사용자 정의 권한 토큰의 직렬화된 버전을 수신하도록 com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule 로그인 모듈이 있는 WebSphere Application Server 시스템 로그인 구성에 사용자 정의 로그인 모듈을 추가하십시오.

    이 로그인 모듈은 com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule 로그인 모듈이 추가한 공유 상태에 있는 정보에 의존하므로 이 로그인 모듈을 com.ibm.ws.security.server.lm.wsMapDefaultInboundLoginModule 로그인 모듈 뒤에 추가하십시오. 사용자 정의 로그인 모듈을 기존 로그인 구성에 추가하는 방법에 대한 자세한 정보는 'JAAS용 시스템 로그인 구성을 위한 사용자 정의 로그인 모듈 개발'을 참조하십시오.

결과

이러한 단계를 완료한 후 사용자 정의 인증 토큰을 구현했습니다.