Kerberos 구성 파일 작성
Kerberos 구성 파일에는 관심 영역에 대한 KDC(Key Distribution Centers)의 위치, 현재 Kerberos 영역에 대한 기본값 및 Kerberos 영역에 호스트 이름 맵핑을 포함하여 클라이언트 구성 정보가 포함됩니다. wsadmin 유틸리티를 사용하여 WebSphere® 애플리케이션 서버에 대한 Kerberos 구성 파일을 작성하십시오.
이 태스크 정보
Kerberos 구성 설정값, Kerberos KDC(Key Distribution Center) 이름, SPNEGO(Simple and Protected GSS-API Negotiation Mechanism) 웹 인증과 Kerberos 인증 모두에 대한 영역 설정값이 Kerberos 구성 파일에 제공되거나 또는 java.security.krb5.kdc 및 java.security.krb5.realm JVM(Java™ Virtual Machine) 시스템 특성을 통해 제공됩니다.
기본 위치는 c:\winnt\krb5.ini입니다.
참고: krb5.ini 파일이 c:\winnt 디렉토리에 있지 않는 경우 c:\windows에 있습니다.기본 위치는 /etc/krb5.conf입니다.
기타 Unix 플랫폼에서 기본 위치는 /etc/krb5/krb5.conf입니다.
프로시저
- app_server_root/bin 디렉토리에서 wsadmin 명령을 실행해서 명령행 유틸리티를 시작하십시오.
- wsadmin 프롬프트에서 다음 명령을 입력하십시오.
$AdminTask help createKrbConfigFile
- createKrbConfigFile 명령 매개변수를 지정하십시오.
표 1. createKrbConfigFile 명령 매개변수. 이 테이블에는 createKrbConfigFile 명령으로 사용할 수 있는 매개변수가 나열됩니다.
옵션 설명 <krbPath> 필수 Kerberos 구성(krb5.ini 또는 krb5.conf) 파일의 완전한 파일 시스템 위치를 제공합니다. <realm> 필수 Kerberos 영역 이름을 제공합니다. 이 속성의 값은 SPNEGO가 com.ibm.ws.security.spnego.SPN<id>.hostName 특성으로 지정되는 각 호스트에 대해 Kerberos 서비스 프린시펄 이름을 형성하는 데 사용됩니다. <kdcHost> 필수 Kerberos KDC(Key Distribution Center)의 호스트 이름을 제공합니다. <kdcPort> 선택적. Kerberos KDC(Key Distribution Center)의 포트 번호를 제공합니다. 이 포트 번호가 생략되는 경우 기본값은 88입니다. <dns> 필수 완전한 호스트 이름을 생성하는 데 사용되는 기본 DNS(Domain Name Service)의 목록(파이프 문자로 구분됨). 목록의 첫 번째는 기본 DNS(Domain Name Service)입니다. <keytabPath> 필수 Kerberos keytab 경로 및 파일 이름의 파일 시스템 위치를 제공합니다. <encryption> 선택적. 지원되는 암호화 유형 목록(파이프 문자로 구분됨)을 식별합니다. 기본값은 des-cbc-md5입니다. - 암호화 유형을 지정하십시오. 다음 암호화 유형이 지원됩니다.
- des-cbc-md5
- des-cbc-crc
- des3-cbc-sha1
- rc4-hmac
- arcfour-hmac
- arcfour-hmac-md5
- aes128-cts-hmac-sha1-96
- aes256-cts-hmac-sha1-96
주의: 사용 가능한 모든 KDC 솔루션이 이전에 나열된 모든 비밀번호화 유형을 지원하는 것은 아닙니다. 암호화 유형을 선택하기 전에 Kerberos 관리자 및 사용자 안내서를 참조해서 KDC가 사용하려는 암호화 유형을 지원한다는 것을 확인해야 합니다.Kerberos 구성 파일, Kerberos keytab 파일, Kerberos 서비스 프린시펄 이름 및 Kerberos 클라이언트에 대한 공통 암호화 유형이 있는지 확인하십시오. 예를 들어 Kerberos 클라이언트가 RC4-HMAC 암호화 유형을 사용하는 경우 대상 서버는 RC4-HMAC 암호화 유형을 지원해야 하고 Kerberos 구성 파일은 먼저 default_tgt_enctypes 및 default_tkt_enctypes에 RC4-HMAC를 나열해야 합니다.
- krbPath 및 krbKeytab 위치 유형을 지정하십시오. 다음 코드는 createKrbConfigFile 명령의 예제입니다.
$AdminTask createKrbConfigFile {-krbPath c:/winnt/krb5.ini -realm WSSEC.AUSTIN.IBM.COM -kdcHost host1.austin.ibm.com -dns austin.ibm.com|raleigh.ibm.com -keytabPath c:/winnt/krb5.keytab}
참고: WebSphere 변수는 createKrbConfigFile 명령에 대한 krbPath 및 krbKeytab 위치 경로를 지정하는 데 사용될 수 있습니다.이 예제를 사용하여 c:/winnt/krb5.ini 파일을 작성하십시오.[libdefaults] default_realm = WSSEC.AUSTIN.IBM.COM default_keytab_name = FILE:c:\winnt\krb5.keytab default_tkt_enctypes = rc4-hmac des-cbc-md5 default_tgs_enctypes = rc4-hmac des-cbc-md5 forwardable = true renewable = true noaddresses = true clockskew = 300 [realms] WSSEC.AUSTIN.IBM.COM = { kdc = host1.austin.ibm.com:88 default_domain = austin.ibm.com } [domain_realm] .austin.ibm.com = WSSEC.AUSTIN.IBM.COM .raleigh.ibm.com = WSSEC.AUSTIN.IBM.COM
createKrbConfigFile 명령은 단순 Kerberos 구성 파일을 작성합니다. 필요한 경우 TCP 또는 UDP 환경 설정을 지정하거나 교차하거나 신뢰되는 영역 환경이 있을 때 이 파일을 편집할 수 있습니다.
[libdefaults] 섹션에서 TCP 또는 UDP 프로토콜 환경 설정을 지정할 수 있습니다. 기본적으로 Java Kerberos 구성은 UDP 프로토콜을 사용합니다. 그러나 Java Kerberos는 udp_preference_limit 매개변수를 사용하여 TCP 또는 UDP 프로토콜 구성을 지원합니다. TCP 프로토콜을 사용해야 하는 경우 항상 TCP 프로토콜을 사용하도록 1 값으로 udp_preference_limit 매개변수를 지정하십시오. 예를 들면, 다음과 같습니다.
이 매개변수를 지정하지 않은 경우 Java Kerberos 라이브러리는 UDP 프로토콜을 사용하는 Kerberos 티켓 요청에 실패하고 KDC가 KRB_ERR_RESPONSE_TOO_BIG 오류 코드를 리턴하는 경우에만 TCP 프로토콜을 사용합니다.udp_preference_limit =1
문제점 방지: 애플리케이션 서버가 클라이언트 요청을 수신할 때 서버의 Kerberos 구성은 TCP 프로토콜을 사용하고 KDC가 잘못된 패킷을 리턴하는 경우 연결 재설정, IOException 또는 구분된 파이프 예외를 리턴합니다. 애플리케이션 서버는 올바른 kerberos 패킷을 캡처하도록 세 번 시도합니다. 올바른 Kerberos 패킷이 세 번의 시도 중 하나의 결과로 리턴되는 경우 클라이언트 요청이 성공적으로 처리되고 예외를 무시할 수 있습니다. 애플리케이션 서버가 세 번의 시도 후에도 올바른 Kerberos 패킷을 얻을 수 없는 경우 클라이언트는 요청에 실패합니다. 이 경우, 문제를 판별하려면 KDC, 네트워크 및 애플리케이션 서버 구성을 검토하십시오. gotcha
- 크로스 영역 환경에 대한 Kerberos 구성 파일의 [domain_realm] 섹션을 완료하십시오.
- [domain_realm]: 도메인 이름 또는 호스트 이름에서 영역 이름까지 변환을 제공합니다. 태그 이름은 호스트 이름 또는 도메인 이름이 될 수 있습니다. 도메인 이름은 마침표('.')의 접두부로 표시됩니다. 관계 값은 해당 특정 호스트 또는 도메인에 대한 영역 이름입니다. 호스트 이름 및 도메인 이름은 소문자여야 합니다.변환 입력이 적용되지 않는 경우 호스트 영역은 대문자로 변환된 호스트 이름 도메인 부분이라고 간주됩니다. 예를 들어 다음 [domain_realm] 섹션은 tech.ibm.com을 TEST.AUSTIN.IBM.COM 영역에 맵핑합니다.
[domain_realm] .austin.ibm.com = WSSEC.AUSTIN.IBM.COM .raleigh.ibm.com = WSSEC.AUSTIN.IBM.COM
austin.ibm.com 및 .raleigh.ibm.com 도메인의 기타 모든 호스트는 기본적으로 WSSEC.AUSTIN.IBM.COM에 맵핑됩니다.
다음 예제에는 둘 이상의 Kerberos 영역 이름이 포함됩니다.[domain_realm] .ibm.com =AUSTIN.IBM.COM ibm.com =AUSTIN.IBM.COM tech.ibm.com =TEST.AUSTIN.IBM.COM .fubar.org =FUBAR.ORG
ibm.com®도메인의 기타 모든 호스트는 기본적으로 AUSTIN.IBM.COM 영역에 맵핑되고 fubar.org 도메인의 모든 호스트는 기본적으로 FUBAR.ORG 영역에 맵핑됩니다.
호스트(ibm.com 및 fubar.org)에 대한 입력에 주의하십시오. 이러한 입력 없이 해당 호스트는 영역 COM 및 ORG에 각각 맵핑됩니다.
피어 신뢰 크로스-영역 인증의 경우 KDC에 신뢰 크로스-영역 인증을 설정하는 방법에 대한 정보는 Kerberos 관리자 및 사용자 안내서를 참조하십시오.
- [domain_realm]: 도메인 이름 또는 호스트 이름에서 영역 이름까지 변환을 제공합니다. 태그 이름은 호스트 이름 또는 도메인 이름이 될 수 있습니다. 도메인 이름은 마침표('.')의 접두부로 표시됩니다. 관계 값은 해당 특정 호스트 또는 도메인에 대한 영역 이름입니다. 호스트 이름 및 도메인 이름은 소문자여야 합니다.
- 외부 영역에 대한 정보를 Kerberos 구성 파일의 domain_realm 섹션 및 영역에 추가하십시오.
[realms] AUSTIN.IBM.COM = { kdc = kdc.austin.ibm.com:88 default_domain = austin.ibm.com } FUBAR.ORG = { kdc = kdc.fubar.org:88 default_domain = fubar.org } [domain_realm] austin.ibm.com = AUSTIN.IBM.COM .austin.ibm.com = AUSTIN.IBM.COM fubar.org = FUBAR.ORG .fubar.org = FUBAR.ORG
이행적 신뢰에서 티켓을 수여하는 것에 관련되는 매개체 영역을 신뢰하는 경우 두 영역은 서로 신뢰합니다. 서비스 티켓을 부여하는 것에 관련된 각 영역이 신뢰 경로에 있는 경우 티켓이 신뢰됩니다. KDC에 이행적 신뢰를 구성하는 방법에 대한 정보는 Kerberos 관리자 및 사용자 안내서를 참조하십시오.
이행적 신뢰를 설정하려면 크로스-영역 인증이 있는 독립 영역은 A와 B 그리고 B와 C사이에 정의되어야 하지만 A와 C사이에는 정의되지 않아야 합니다. 이행적 신뢰를 사용하여 REALMA 및 REAMC는 서로 통신할 수 있지만 REAMB를 통해서만 통신할 수 있습니다.REALMA <-> REALMB <-> REALMC
- 데이터를 스탠자에 추가하십시오. [capaths] 스탠자를 각 krb5.conf 파일에 추가하십시오.
모든 머신의 krb5.conf 파일은 [realms] 스탠자에 세 개의 모든 영역을 나열해야 합니다. REALMA는 자체와 REALMB 및 REALMC를 나열해야 합니다. REALMB는 자체와 REALMA 및 REALMC를 나열해야 합니다. REALMC는 자체와 REALMA 및 REALMB를 나열해야 합니다. krb5.conf 파일의 [domain_realm] 스탠자에는 REALMA에서 REALMC까지 실행할 수 있고 REALMC에서 REALMA까지 실행할 수 있는 세 개의 모든 호스트 이름 및 영역 이름이 나열됩니다.
[capaths] REALMA.AUSTIN.IBM.COM = { REALMB.AUSTIN.IBM.COM = . REALMC.AUSTIN.IBM.COM = REALMB.AUSTIN.IBM.COM } REALMB.AUSTIN.IBM.COM = { REALMC.AUSTIN.IBM.COM = . REALMA.AUSTIN.IBM.COM = . } REALMC.AUSTIN.IBM.COM = { REALMB.AUSTIN.IBM.COM = . REALMA.AUSTIN.IBM.COM = REALMB.AUSTIN.IBM.COM }
- krb5.conf 파일 권한을 644로 설정하십시오.
이는 파일을 읽고 쓸 수 있음을 의미합니다. 그러나 파일이 속한 그룹의 멤버 및 기타 모든 사용자는 파일을 읽을 수만 있습니다.
Kerberos 구성 및 keytab 파일이 JVM 시스템 특성에 의해서 각각 java.security.krb5.conf 및 KRB5_KTNAME으로 설정되기 때문에 SPNEGO 웹 인증 및 Kerberos 인증을 둘 다 사용할 수 있는 경우 두 인증에 대해 동일한 Kerberos 구성 및 keytab 파일을 사용해야 합니다.
결과


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_kerb_create_conf
파일 이름:tsec_kerb_create_conf.html