Kerberos 서비스 프린시펄 이름 및 keytab 파일 작성

이 태스크는 WebSphere® Application Server에 SPNEGO 웹 또는 Kerberos 인증 요청을 처리하기 위해 필요합니다. Microsoft Windows, IBM i, Linux, Solaris, Massachusetts Institute of Technology(MIT) 및 z/OS® 운영 체제 키 분배 센터(KDC)를 사용하여 Kerberos 서비스 프린시펄 이름 및 keytab 파일을 작성할 수 있습니다.

이 태스크 정보

Microsoft Windows KDC를 사용하여 Kerberos 서비스 프린시펄 이름 및 keytab 파일 작성:

이 태스크는 활성 디렉토리 도메인 제어기 머신에서 수행됩니다. 활성 디렉토리 도메인 제어기를 실행 중인 Windows 2003 Server가 연관된 키 분배 센터(KDC)에 제대로 구성되었는지 확인하려면 다음 단계를 완료하십시오.

  1. WebSphere Application Server의 Microsoft Active Directory에서 사용자 계정을 작성하십시오.

    시작->프로그램->관리 도구->Active Directory 사용자 및 컴퓨터를 클릭하십시오.

    WebSphere Application Server의 이름을 사용하십시오. 예를 들어, WebSphere Application Server 머신에서 실행 중인 Application Server가 myappserver.austin.ibm.com이라고 불리면 활성 디렉토리에서 myappserver라는 새 사용자를 작성하십시오.

    컴퓨터 및 도메인 제어기 아래에 컴퓨터 이름 myappserver가 없는지 확인하십시오. 이미 myappserver 컴퓨터 이름이 있으면 다른 사용자 계정 이름을 작성해야 합니다.
    • 시작 -> 프로그램 -> 관리 도구 -> Active Directory 사용자 및 컴퓨터->컴퓨터를 클릭하십시오.
    • 프로그램 -> 관리 도구 -> Active Directory 사용자 및 컴퓨터->도메인 제어기를 클릭하십시오.
  2. setspn 명령을 사용하여 Kerberos 서비스 프린시펄 이름 <service name>/<fully qualified host name>을 Microsoft 사용자 계정으로 맵핑하십시오.

    SPNEGO 웹 인증의 서비스 이름은 HTTP여야 합니다. 그러나 Kerberos 인증의 서비스 이름은 KDC에 의해 허용되는 문자열일 수 있습니다.

    SPNEGO 웹 인증의 setspn 명령 사용법의 예는 다음과 같습니다.

    C:\Program Files\Support Tools>
    setspn -A HTTP/myappserver.austin.ibm.com myappserver
    참고: 호스트 이름은 완전한 호스트 이름이어야 합니다.
    중요사항: 동일한 서비스 프린시펄 이름(SPN) 이 둘 이상의 Microsoft 사용자 계정에 맵핑되지 않는지 확인하십시오. 동일한 SPN을 둘 이상의 사용자 계정에 맵핑하는 경우에는 웹 브라우저 클라이언트는 SPNEGO 토큰 대신에 NT LAN 관리자(NTLM) 토큰을 WebSphere Application Server에 전송할 수 있습니다.
  3. Kerberos keytab 파일을 작성하고 이를 WebSphere Application Server에서 사용 가능하게 만드십시오. Windows Server 툴킷으로부터 ktpass 도구를 사용하여 SPN의 Kerberos keytab 파일(krb5.keytab)을 작성하십시오.
    참고: Kerberos keytab 파일에는 사용자 비밀번호와 유사한 키 목록이 포함됩니다. 호스트가 Kerberos keytab 파일을 로컬 디스크에 저장하여 이를 보호하는 것이 중요합니다.

    Windows Server 툴킷으로부터 ktpass 도구를 사용하여 서비스 프린시펄 이름(SPN)의 Kerberos keytab 파일을 작성하십시오. 사용 중인 Windows 서버 레벨과 일치하는 ktpass 도구의 최신 버전을 사용하십시오. 예를 들어, Windows 2003 서버의 경우 도구의 Windows 2003 버전을 사용하십시오.

    ktpass 도구의 적합한 매개변수 값을 판별하려면 명령행에서 ktpass -? 명령을 실행하십시오. 이 명령은 특정 운영 체제에 해당하는 ktpass 도구가 -crypto RC4-HMAC 또는 -crypto RC4-HMAC-NT 매개변수 값을 사용하는지 여부를 나열합니다. 툴킷으로부터 경고 메시지를 피하려면 -ptype KRB5_NT_PRINCIPAL 매개변수 값을 지정해야 합니다.

    ktpass 도구의 Windows 2003 서버 버전은 암호화 유형, RC4-HMAC 및 단일 데이터 암호화 표준(DES)을 지원합니다. ktpass 도구에 대한 자세한 정보는 Windows 2003 Technical Reference - Ktpass 개요를 참조하십시오.

    다음 코드는 명령행에 ktpass -? 명령을 입력할 때 사용 가능한 기능을 보여줍니다. 이 정보는 사용 중인 툴킷의 버전에 따라 다를 수 있습니다.
    C:\Program Files\Support Tools>ktpass -?                                  
    Command line options:                                                     
                                                                              
    ---------------------most useful args                                     
    [- /]          out : Keytab to produce                                    
    [- /]        princ : Principal name (user@REALM)                          
    [- /]         pass : password to use                                      
                         use "*" to prompt for password.                      
    [- +]      rndPass : ... or use +rndPass to generate a random password    
    [- /]      minPass : minimum length for random password (def:15)          
    [- /]      maxPass : maximum length for random password (def:256)         
    ---------------------less useful stuff                                    
    [- /]      mapuser : map princ to this user account (default:     
    don't)                                                                    
    [- /]        mapOp : how to set the mapping attribute (default: add it)   
    [- /]        mapOp :  is one of:                                          
    [- /]        mapOp :        add : add value (default)                     
    [- /]        mapOp :        set : set value                               
    [- +]      DesOnly : Set account for des-only encryption (default:don't)  
    [- /]           in : Keytab to read/digest                                
    ---------------------options for key generation                           
    [- /]       crypto : Cryptosystem to use                                  
    [- /]       crypto :  is one of:                                          
    [- /]       crypto : DES-CBC-CRC : for compatibility                      
    [- /]       crypto : DES-CBC-MD5 : for compatibliity                      
    [- /]       crypto : RC4-HMAC-NT : default 128-bit encryption             
    [- /]        ptype : principal type in question                           
    [- /]        ptype :  is one of:                                          
    [- /]        ptype : KRB5_NT_PRINCIPAL : The general ptype-- recommended  
    [- /]        ptype : KRB5_NT_SRV_INST : user service instance             
    [- /]        ptype : KRB5_NT_SRV_HST : host service instance              
    [- /]         kvno : Override Key Version Number                          
                         Default: query DC for kvno.  Use /kvno 1 for Win2K   
    compat.                                                                   
    [- +]       Answer : +Answer answers YES to prompts.  -Answer answers     
    NO.                                                                       
    [- /]       Target : Which DC to use.  Default:detect                     
    ---------------------options for trust attributes (Windows Server 2003    
    Sp1 Only                                                                  
    [- /] MitRealmName : MIT Realm which we want to enable RC4 trust on.      
    [- /]  TrustEncryp : Trust Encryption to use; DES is default              
    [- /]  TrustEncryp :  is one of:                                          
    [- /]  TrustEncryp :        RC4 : RC4 Realm Trusts (default)              
    [- /]  TrustEncryp :        DES : go back to DES
    중요사항: ktpass 명령에서 Microsoft Windows server 계정의 비밀번호를 재설정하기 위해 -pass 스위치를 사용하지 마십시오.
    자세한 정보는 Windows 2003 Technical Reference - Ktpass 개요를 참조하십시오.
    암호화 유형에 따라서 다음 방법 중 하나로 ktpass 도구를 사용하여 Kerberos keytab 파일을 작성하십시오. 다음 섹션은 ktpass 도구가 사용하는 여러 암호화 유형을 보여줍니다. Microsoft Windows 환경에서 특정 툴킷이 어떤 -crypto 매개변수 값을 예상하는지를 판별하기 위해 ktpass -? 명령을 실행하는 것이 중요합니다.
    • 단일 DES 암호화 유형:
      명령 프롬프트에서 ktpass 명령을 실행하십시오.
      ktpass -out c:\temp\myappserver.keytab 
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM
      -mapUser myappserv 
      -mapOp set 
      -pass was1edu
      -crypto DES-CBC-MD5 
      -pType KRB5_NT_PRINCIPAL
      +DesOnly
      표 1. 단일 DES 암호화 유형에 ktpass 사용.

      이 테이블은 단일 DES 암호화 유형에 대해 ktpass를 사용하는 방법을 설명합니다.

      옵션 설명
      -out c:\temp\myappserver.keytab 키는 이 출력 파일에 작성됩니다.
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 사용자 로그온 이름의 결합 및 영역은 대문자여야 합니다.
      -mapUser 키는 사용자, myappserver에 맵핑됩니다.
      -mapOp 이 옵션은 맵핑을 설정합니다.
      -pass was1edu 이 옵션은 사용자 ID의 비밀번호입니다.
      -crypto DES-CBC-MD5 이 옵션은 단일 DES 암호화 유형을 사용합니다.
      -pType KRB5_NT_PRINCIPAL 이 옵션은 KRB5_NT_PRINCIPAL 프린시펄 이름을 지정합니다. 툴킷 경고 메시지를 피하려면 이 옵션을 지정하십시오.
      +DesOnly 이 옵션은 DES 암호화만을 생성합니다.
    • RC4-HMAC 암호화 유형:
      중요사항: RC4-HMAC 암호화는 Windows 2003 Server를 KDC로서 사용하는 경우에만 지원됩니다.
      명령 프롬프트에서 ktpass 명령을 실행하십시오.
      ktpass -out c:\temp\myappserver.keytab 
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 
      -mapUser myappserver
      -mapOp set 
      –pass was1edu 
      -crypto RC4-HMAC
      -pType KRB5_NT_PRINCIPAL
      표 2. RC4-HMAC 암호화 유형에 ktpass 사용
      옵션 설명
      -out c:\temp\myappserver.keytab 키는 이 출력 파일에 작성됩니다.
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 사용자 로그온 이름의 결합 및 영역은 대문자여야 합니다.
      -mapUser 키는 사용자, myappserver에 맵핑됩니다.
      -mapOp 이 옵션은 맵핑을 설정합니다.
      -pass was1edu 이 옵션은 사용자 ID의 비밀번호입니다.
      -crypto RC4-HMAC 이 옵션은 RC4-HMAC 암호화 유형을 사용합니다.
      -pType KRB5_NT_PRINCIPAL 이 옵션은 KRB5_NT_PRINCIPAL 프린시펄 이름을 지정합니다. 툴킷 경고 메시지를 피하려면 이 옵션을 지정하십시오.
    • RC4-HMAC-NT 암호화 유형의 경우
      명령 프롬프트에서 ktpass 명령을 실행하십시오.
      ktpass -out c:\temp\myappserver.keytab 
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 
      -mapUser myappserver 
      -mapOp set 
      -pass was1edu 
      -crypto RC4-HMAC-NT
      -pType KRB5_NT_PRINCIPAL
      표 3. RC4-HMAC-NT 암호화 유형에 ktpass 사용
      옵션 설명
      -out c:\temp\myappserver.keytab 키는 이 출력 파일에 작성됩니다.
      -princ HTTP/myappserver.austin.ibm.com@WSSEC.AUSTIN.IBM.COM 사용자 로그온 이름의 결합 및 영역은 대문자여야 합니다.
      -mapUser 키는 사용자, myappserver에 맵핑됩니다.
      -mapOp 이 옵션은 맵핑을 설정합니다.
      -pass was1edu 이 옵션은 사용자 ID의 비밀번호입니다.
      -crypto RC4-HMAC-NT 이 옵션은 RC4-HMAC-NT 암호화 유형을 사용합니다.
      -pType KRB5_NT_PRINCIPAL 이 옵션은 KRB5_NT_PRINCIPAL 프린시펄 이름을 지정합니다. 툴킷 경고 메시지를 피하려면 이 옵션을 지정하십시오.
      Kerberos keytab 파일은 SPNEGO와 함께 사용되기 위해 작성됩니다.

iSeries, Linux, Solaris 및 MIT KDC를 사용하여 Kerberos 서비스 프린시펄 이름 및 keytab 파일 작성:

자세한 정보는 kadmin, kadmin.local addprincktadd 명령의 Kerberos 구현 문서를 참조하십시오.

이 태스크는 Linux, Solaris 또는 MIT KDC 머신에서 수행됩니다.

  1. 예를 들면 Kerberos 인증을 위한 Kerberos 서비스 프린시펄을 작성하십시오.
    WAS/testmach.austin.ibm.com 
    kadmin.local: addprinc WAS/testmach.austin.ibm.com 
  2. 예를 들면 새로 작성된 Kerberos 서비스 프린시펄, WAS/testmach.austin.ibm.com을 기본 krb5.keytab 파일에 추가하십시오.
    kadmin.local: ktadd WAS/testmach.austin.ibm.com 

z/OS KDC를 사용하여 Kerberos 서비스 프린시펄 이름 및 keytab 파일 작성:

SPNEGO(Simple and Protected GSS-API Negotiation) 웹 인증 및 Kerberos 인증을 사용하려면 먼저 WebSphere Application Server 관리자가 WebSphere Application Server를 실행 중인 호스트에 Kerberos keytab 파일을 작성해야 합니다.

SPN을 작성하려면 다음을 수행하십시오.

  1. Kerberos ID(KERBNAME)는 <서비스>/<완전한 시스템 이름> 양식이어야 합니다.
  2. 다음 예는 SPNEGO Web, HTTP/host1.pok.ibm.com에 대해 Kerberos SPN을 작성합니다.
    ALTUSER ASCR1 KERB(KERBNAME(HTTP/host1.pok.ibm.com))
    문제점 방지 문제점 방지: ALTUSER 명령에 지정된 지원되는 암호화 유형 목록이 krb5.conf kerberos 구성 파일에 지정된 것과 일치하는지 확인해야 합니다. 예를 들어, krb5.conf 구성 파일이 aes256-cts-hmac-sha1-96만이 지원됨을 지정하면 ENCRYPT 피연산자에는 AES256을 제외하고, 지원되지 않는 것으로 설정된 모든 암호화 유형이 있어야 합니다.gotcha
  3. 이 사용자에 대해 Kerberos 키를 생성하십시오. 이 키를 생성하려면 비밀번호는 이 ID와 연관되어야 합니다. 이 ID를 사용하여 시스템에 로그온하지 마십시오. 새 Kerberos 키가 필요할 때마다 다음 두 개의 행을 입력하십시오.
    참고: WebSphere 또는 KDC 관리자는 keytab 파일에 항목을 작성하려면 이 비밀번호를 알아야 합니다.
    ALTUSER ASCR1 PASSWORD(was1krb) NOEXPIRED
    ALTUSER ASCR1 NOPASSWORD
  4. 이 사용자에 올바른 Kerberos 세그먼트와 키가 있는지 확인하십시오. 예:
    LISTUSER ASCR1 KERB NORACF
     USER=ASCR1                            
     KERB INFORMATION                      
     ----------------                      
     KERBNAME= HTTP/host1.pok.ibm.com        
     KEY VERSION= 001                      
     KEY ENCRYPTION TYPE= DES NODES3 NODESD

    Kerberos keytab(krb5.keytab) 파일을 작성하려면 다음을 수행하여 Java™ Kerberos ktab 명령, <$WAS_HOME>/java/bin/ktab을 사용하십시오.

  5. 명령행에서 ktab –help 명령을 입력하여 이 명령의 적합한 사용법을 가져오십시오. 예를 들어 다음과 같습니다.
    (host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(189):>ktab -help
    Usage: java com.ibm.security.krb5.internal.tools.Ktab [options]
    Available options:
            -l					list the keytab name and entries
            -a <principal_name> [password]  add an entry to the keytab
            -d <principal_name>             delete an entry from the keytab
            -k <keytab_name>                specify keytab name and path with FILE: prefix
            -m <source_keytab_name> <destination_keytab_name>      specify merging source keytab file name and destination keytab file name   
  6. 명령행에서 ktab 명령을 사용하여 SPN을 기본 keytab 파일에 추가하십시오. 예:
    (host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(201):>ktab -a
    HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM ot56prod
    Done!
    Service key for principal HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM saved
  7. 올바른 SPN이 기본 keytab 파일에 있는지 확인하십시오. 예:
    (host1)CTC03:/PYRSA1/usr/lpp/zWebSphere/V7R1/java/J5.0/bin(202):>ktab
    1 entries in keytab, name: /etc/skrb/krb5.keytab
            KVNO    Principal
            ----    ---------
            1       HTTP/host1.pok.ibm.com@LSREALM.POK.IBM.COM
keytab 파일이 WebSphere Application Server에서 사용 가능하도록 하십시오. krb5.keytab 파일을 KDC에서 WebSphere Application Server 머신의 Kerberos 구성 파일(krb5.ini 또는 krb5.conf)에 지정된 위치로 복사하십시오. 예를 들어 다음과 같습니다.
ftp> bin
ftp> put c:\temp\KRB5_NT_SEV_HST\krb5.keytab
참고: Kerberos keytab 구성 파일에는 사용자 비밀번호와 유사한 키 목록이 포함됩니다. 호스트에서 권한이 부여된 사용자만이 읽을 수 있는 로컬 디스크에 Kerberos keytab 파일을 저장함으로써 이를 보호하는 것이 중요합니다.
validateKrbConfig 명령을 사용하여 krb5.conf 및 krb5.keytab 파일을 유효성 검증하십시오. 예:
wsadmin>$AdminTask help validateKrbConfig 
참고: Kerberos keytab 파일은 Kerberos 및 SPNEGO 웹 인증이 공유합니다. 이는 한 번 로드된 후에는 새로 고칠 수 없습니다.

그러나 JDK 1.6 with SR3이 설치된 경우에는 해당되지 않습니다.

참고: keytab 파일을 병합해야 하는 경우에는 -m 옵션과 함께 Java ktab 명령을 사용하는 것이 좋습니다.

결과

WebSphere Application Server가 SPNEGO 및 또는 Kerberos 인증 요청을 처리하기 위해 사용하는 KDC에서 Kerberos 서비스 프린시펄 이름 및 keytab 파일을 작성했습니다.


주제 유형을 표시하는 아이콘 태스크 주제



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