아파치 톰캣 서블릿/JSP 컨테이너

아파치 톰캣 7

Version 7.0.28-dev, Oct 2 2013
Apache Logo

Links

User Guide

참고

아파치 톰캣 개발

Windows 인증 방법

Table of Contents
Overview

Windows 통합 인증은 가장 자주 인트라넷 내에서 사용 그것은 서버가 인증을 수행하고 있어야 환경 때문에 인증 된 사용자는 동일한 도메인의 일부입니다.사용자가 될 때까지 자동 인증, 사용자가 사용하는 클라이언트 컴퓨터도 있어야 합니다 도메인의 일부입니다.

Windows 통합 인증을 구현하기위한 몇 가지 옵션이 있습니다 아파치 톰캣과 함께. 그들은 다음과 같습니다 :

  • 내장 된 톰캣를 지원합니다.
  • 같은 와플과 같은 타사 라이브러리를 사용합니다.
  • 수행하는 Windows 인증을 지원하는 역방향 프록시를 사용 같은 IIS 나 아파치와 같은 인증 단계.
이러한 옵션의 각각의 구성은 다음에 설명되어 있습니다 섹션.

Built-in Tomcat support

그의 진행중인 작품입니다. 뛰어난의 숫자가 있습니다 추가 테스트가 필요 질문. These include:

  • 도메인 이름은 대문자로해야합니까?
  • SPN은 HTTP /로 시작해야합니까 ...?
  • 포트 번호 SPN의 호스트의 끝에 추가 할 수 있습니까?
  • 도메인 ktpass 명령에 사용자 중단 할 수 있습니까?
  • 톰캣으로 실행할 수있는 계정의 제한은 무엇입니까? SPN      관련 계정 작품, 도메인 관리자 작업, 로컬 관리자는하지 않습니다      법과k

내장 된 톰캣의 구성을 네 가지 구성 요소가 있습니다 Windows 인증을 지원합니다.도메인 컨트롤러를 호스팅하는 서버 톰캣, Windows 인증을 사용하고자하는 웹 응용 프로그램과 클라이언트 기계.다음 섹션에서는 각에 필요한 구성을 설명 구성 요소입니다.

아래의 구성 예에서 사용 된 세 가지 기계의 이름은 윈 - dc01.dev.local (도메인 컨트롤러), 윈 - tc01.dev.local (톰캣 예)와 윈 - pc01.dev.local (클라이언트). 모든 DEV.LOCAL의 구성원 도메인을 입력합니다.

참고 : 아래의 단계에서 암호를 사용하려면 도메인 암호 정책을 완화 할 수 있었다. 이 프로덕션 환경에는 권장되지 않습니다.

Domain Controller

이 단계에서는 서버가 이미 역할을하도록 구성되어 있다고 가정    도메인 컨트롤러입니다.Windows 서버의 구성 도메인 컨트롤러이기 때문에    이 방법의 범위를 벗어난.도메인 컨트롤러를 구성하는 단계    Tomcat이 Windows 인증을 지원할 수 있도록하는 것은 다음과 같습니다 :

  • 에서 사용하는 서비스 이름에 매핑될 도메인 사용자를 생성    Tomcat 서 v를. 이 방법이 사용자가 TC01를 호출하고 있다에    의 비밀 tc01pass.
  • 사용자 계정에 서비스 주체 이름 (SPN)을 매핑합니다. SPN이가을    형태 <service class>/<host>:<port>/<service name>. 이에 사용되는 SPN 방법 HTTP/win-tc01.dev.local입니다 를. 에   SPN에 사용자를 매핑하려면 다음을 실행합니다 :
    setspn -A HTTP/win-tc01.dev.local tc01
  • Tomcat 서버가 인증하는 데 사용하는 키탭 파일을 생성    자체 도메인 컨트롤러에. 이 파일의 톰캣 개인 키를 포함   서비스 제공자의 계정과 그에 따라 보호해야합니다. 생성하려면   파일, 다음 명령 (모두 한 줄에)을 실행 :   
    의의 ktpass / 아웃 C : \ tomcat.keytab / mapuser tc01@DEV.LOCAL
               / 공주 역 HTTP/win-tc01.dev.local @ DEV.LOCAL
               / tc01pass / kvno와 0을 전달
  • 클라이언트에서 사용하는 도메인 사용자를 작성하십시오. 이있는 도메인의 사용 방법    사용자는 test 의 암호 testpass.

위의 단계는 Windows를 실행하는 도메인 컨트롤러에서 테스트되었습니다    Windows Server 2003 기능 수준을 사용하여 서버 2008 R2 64 비트 표준   숲과 도메인 모두.

Tomcat instance

이 단계는 톰캣과 자바 6 JDK / JRE가 이미했다고 가정    설치 및 구성하고 Tomcat은 tc01@DEV.LOCAL으로 실행됩니다    사용자. 윈도우 인증 톰캣 인스턴스를 구성하는 단계    다음과 같습니다 :

  • Copy the tomcat.keytab file created on the domain controller to $CATALINA_BASE/conf/tomcat.keytab.
  • Kerberos 구성 파일을 만듭니다 $CATALINA_BASE/conf/krb5.ini. The file used in this how-to contained:
    [libdefaults]
    default_realm = DEV.LOCAL
    default_keytab_name = FILE:c:\apache-tomcat-7.0.x\conf\tomcat.keytab
    default_tkt_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96
    default_tgs_enctypes = rc4-hmac,aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96
    forwardable=true
    
    [realms]
    DEV.LOCAL = {
            kdc = win-dc01.dev.local:88
    }
    
    [domain_realm]
    dev.local= DEV.LOCAL
    .dev.local= DEV.LOCAL
    이 파일의 위치를 설정하여 변경할 수 있습니다 java.security.krb5.conf systm property.
  • Create the JAAS login configuration file $CATALINA_BASE/conf/jaas.conf. The file used in this how-to contained:
    com.sun.security.jgss.krb5.initiate {
        com.sun.security.auth.module.Krb5LoginModule required
        doNotPrompt=true
        principal="HTTP/win-tc01.dev.local@DEV.LOCAL"
        useKeyTab=true
        keyTab="c:/apache-tomcat-7.0.x/conf/tomcat.keytab"
        storeKey=true;
    };
    
    com.sun.security.jgss.krb5.accept {
        com.sun.security.auth.module.Krb5LoginModule required
        doNotPrompt=true
        principal="HTTP/win-tc01.dev.local@DEV.LOCAL"
        useKeyTab=true
        keyTab="c:/apache-tomcat-7.0.x/conf/tomcat.keytab"
        storeKey=true;
    };
    이 파일의 위치를 설정하여 변경할 수 있습니다 java.security.auth.login.config system property.로그인 모듈    입니다 사용하는 JVM 특정 하나 때문에 로그인 모듈이 일치에게 지정했는지 확인   JVM이 사용되고있다.로그인 구성의 이름이 일치해야합니다   만약 당신이 좋아하면 것인지의 인증에 사용되는 값 valve.
  • 시스템 속성 javax.security.auth.useSubjectCredsOnly 웹 응용 프로그램이있는 경우 자동으로 false를 필요한 값으로 설정됩니다   SPNEGO 인증 방법을 사용하도록 구성.

SPNEGO의 인증은 만약 당신이 좋아하면 것인지의 함께 작동합니다   JNDI 영역과 함께 사용하는 경우 영역은 하지만, 기본적으로 JNDI 영역을 사용합니다   사용자의 위임 된 자격 증명을 Active Directory에 연결합니다.

위의 단계는 Windows Server를 실행하는 Tomcat 서버에서 테스트되었습니다    64 비트 JDK 1.6.0_24 오라클과 함께 2008 R2는 64 비트 표준.

Web application

웹 응용 프로그램을 사용 톰캣 특정을 구성해야    SPNEGO 를 (대신 등 BASIC 이상)에서의 인증 방법    web.xml에.다른 인증 자와 같이 동작하여 사용자 정의 할 수 있습니다    명시 적으로 만약 당신이 좋아하면 것인지의 을 구성    인증 밸브 및 밸브의 속성을 설정.

Client

클라이언트가 Kerberos 인증을 사용하도록 구성해야합니다. 인터넷    탐색기이 톰캣 인스턴스가 "로컬에 있는지 확인하는 방법    인트라넷 "보안 도메인과 그는 그것을 구성되어 있습니다 (도구> 인터넷    옵션> 고급) Windows 통합 인증을 사용하도록 설정. 참고    당신은 클라이언트의 동일한 시스템을 사용하는 경우이의 하지 않습니다 을 작업    및 Internet Explorer와 같은 톰캣 인스턴스가 지원되지 않는 NTLM을 사용합니다    프로토콜입니다.

References

제대로 Kerberos 인증을 구성하는 까다로운 수 있습니다.다음    참조가 도움이 될 수 있습니다. 조언도에서 항상 사용할 수 있습니다 Tomcat users mailing list.

  1. IIS and Kerberos
  2. SPNEGO project at SourceForge
  3. Oracle JGSS tutorial
  4. Geronimo configuration for Windows authentication
  5. Encryption Selection in Kerberos Exchanges
  6. Supported Kerberos Cipher Suites
Third party libraries
Waffle

이 솔루션의 전체 세부 사항을 찾을 수 있습니다 Waffle site. The key features are:

  • Drop-in solution
  • 간단한 구성 (아무 JAAS 또는 Kerberos 키탭 구성 필요)
  • Uses a native library
Spring Security - Kerberos Extension

이 솔루션의 전체 세부 사항을 찾을 수 있습니다 Kerberos를 확장 사이트. 주요 기능은 다음과 같습니다 :

  • Spring Security을 확장
  • 커버 로스 키 탭 파일을 생성해야합니다
  • 순수 자바 솔루션
SPNEGO project at SourceForge

이 솔루션의 전체 세부 사항을 찾을 수 있습니다 project site. The key features are:

  • Kerberos를 사용
  • 순수 자바 솔루션
Reverse proxies
Microsoft IIS

Windows 인증을 제공하기 위해 IIS를 구성하는 세 가지 단계가 있습니다.    그들은 다음과 같습니다 :

  1. 톰캣 역방향 프록시로 IIS를 구성 (참조    만약 당신이 좋아하면 것인지의    IIS 웹 서버 사용 방법까지).
  2. IIS Windows 인증을 사용하도록 구성
  3. 톰캣으로 IIS에서 인증 사용자 정보를 사용하도록 구성   에 tomcatAuthentication 속성을 설정 AJP connector to false.
Apache httpd

Apache의 아파치는 상자에서 Windows 인증을 지원하지 않지만    사용할 수있는 타사 모듈은 여러 가지가있을 수 있습니다. 이들은 다음과 같습니다 :

  1. mod_auth_sspi 윈도우 플랫폼에서 사용.
  2. mod_auth_ntlm_winbind 비 Windows 플랫폼을 위한. 아파치와 함께 작동하는 것으로 알려져    32 비트 플랫폼에서의 2.0.x. 일부 사용자는 모두 안정성 문제를 보고있다    아파치 2.2.x의 빌드 및 64 비트 Linux 빌드.

윈도우에게 제공하도록 구성 아파치 세 가지 단계가 있습니다    인증. 그들은 다음과 같습니다 :

  1. 톰캣 역방향 프록시로 아파치를 구성 (참조    만약 당신이 좋아하면 것인지의    아파치 웹 서버 사용 방법까지).
  2. 윈도우 인증을 사용하도록 아파치를 구성n
  3. 톰캣에 의해 아파치에서 인증 사용자 정보를 사용하도록 구성   에 tomcatAuthentication 속성을 설정 AJP connector to false.

Copyright © 1999-2013, Apache Software Foundation