Kerberos 인증 구성
Kerberos 인증은 클라이언트 및 서버의 호스트 환경에 따라 다양한 구성 시나리오를 지원합니다. 시나리오마다 조금씩 차이는 있지만 Kerberos 인증을 구현하려면 관리자가 다음과 같은 태스크를 수행해야 합니다.
casso127kkr
Kerberos 인증은 클라이언트 및 서버의 호스트 환경에 따라 다양한 구성 시나리오를 지원합니다. 시나리오마다 조금씩 차이는 있지만 Kerberos 인증을 구현하려면 관리자가 다음과 같은 태스크를 수행해야 합니다.
- KDC(Key Distribution Center) 구성
- Kerberos 인증을 위한 정책 서버 구성
- Kerberos 인증을 위한 웹 에이전트 구성
- Kerberos 구성 파일 생성
- 브라우저가 Kerberos 자격 증명을 보낼 수 있도록 설정
- (선택 사항) Windows 호스트가 UNIX KDC 및 영역과 통신할 수 있도록 설정
다음 섹션에서는 KDC를 설정하는 방법에 대해 설명합니다.
3
Kerberos 인증을 위한 KDC(Key Distribution Center) 구성
KDC(Key Distribution Center)는 네트워크 서비스입니다. 특히 KDC는 사용자 및 서비스를 인증하는 AS(인증 서비스)와 서비스에 액세스하기 위한 티켓을 발급하는 TGS(Ticket-Granting Service)를 제공합니다. Active Directory는 KDC 역할을 할 수 있는 서비스의 예입니다. 서비스 및 응용 프로그램을 호스트하는 서버는 클라이언트의 Kerberos 인증 요청을 수락하는 끝점입니다.
다음 다이어그램에서는 Kerberos 트랜잭션을 간략히 보여 줍니다.

- 클라이언트가 인증 서비스에 요청을 보낸 후 인증됩니다.
- 인증 서비스가 TGS에 대한 티켓을 포함하여 응답을 보냅니다.
- 클라이언트가 특정 서버에 대한 티켓을 요청합니다.
- TGS가 적절한 티켓이 포함된 응답을 반환합니다.
- 클라이언트가 서버 호스트에 서비스를 요청합니다.
- 서비스가 응답하고 액세스 권한이 부여됩니다.
KDC 구성 데이터 예
Windows와 UNIX에서 KDC를 구성하는 절차에는 다음 예와 같은 서버 및 계정 이름이 사용됩니다.
서버 | 이름 |
Active Directory 도메인 | EXAMPLE(웹 도메인이 아니라 AD 도메인임) |
Kerberos 영역 | EXAMPLE.COM |
KDC(예: Active Directory 컨트롤러 또는 UNIX KDC) | kdc.example.com |
정책 서버 | pserver.example.comhttp://pserver1.example.com/
|
정책 서버 서비스 프린서펄 이름 | smps/[email protected] |
HTTP 서비스를 호스트하는 웹 서버 | webagentname.example.comhttp://www.example.com/
|
웹 에이전트 서비스 프린서펄 이름 | HTTP/[email protected] |
중요! SPN(서비스 프린서펄 이름)은 대/소문자를 구분하며 service_type /fqdn _service_host_name @KERBEROS _REALM 형식을 따라야 합니다. 호스트 이름은 소문자로 지정하고 Kerberos 영역 이름은 대문자로 지정하십시오. | |
계정
| 이름
|
사용자 계정 | testkrb |
정책 서버 서비스 계정 | krbsvc-smps |
웹 에이전트 서비스 계정 | krbsvc-smwa |
Kerberos 규칙은 호스트 도메인 이름을 Kerberos 영역 이름과 동일하게 지정하는 것입니다. 영역 이름의 경우 모두 대문자라는 점만 다릅니다. 위 표에서
example.com
도메인의 호스트는 Kerberos 영역 EXAMPLE.COM
에 있습니다.Windows의 KDC 구성
다음 절차에서는 Window 시스템에 KDC를 구성하는 방법에 대해 설명합니다. 예로 사용된 값은 이 지침 전체에 적용됩니다.
이 절차에서는 keytab 파일을 두 개 만듭니다. keytab 파일은 Kerberos 인증에 필요합니다. 이 파일은 서비스 계정이 암호를 입력할 필요 없이 KDC로 인증되도록 합니다. Windows 플랫폼의 경우 keytab 파일은
ktpass
지원 도구를 사용하여 생성됩니다. ktpass 도구는 Active Directory 서버를 도메인 컨트롤러로 승격한 후에 사용할 수 있습니다.다음 단계를 수행하십시오.
- Windows Active Directory 도메인에 사용자 계정(testkrb)을 만듭니다. 이 계정에 대한 암호를 제공합니다.다음 로그온 시 사용자가 반드시 암호를 변경해야 함옵션을 선택 취소합니다. Windows 워크스테이션은 이 계정을 사용하여 example.com 도메인에 로그인합니다.
- 정책 서버의 서비스 계정(예: krbsvc-smps)을 생성합니다. 이 계정에 대한 암호를 제공합니다.다음 로그온 시 사용자가 반드시 암호를 변경해야 함옵션을 선택 취소합니다.
- 웹 에이전트의 서비스 계정(krbsvc smwa)을 만듭니다. 이 계정에 대한 암호를 제공합니다.다음 로그온 시 사용자가 반드시 암호를 변경해야 함옵션을 선택 취소합니다.
- 정책 서버 호스트의 keytab 파일을 만듭니다. 이 keytab 파일은 정책 서버 서비스 계정(krbsvc-smps)을 정책 서버 서비스 프린서펄 이름(smps/[email protected])과 연결합니다.keytab 파일을 만들려면 다음 ktpass 명령을 입력하십시오.ktpass -out c:\krbsvc-smps.keytab -princ smps/[email protected] -ptype KRB5_NT_PRINCIPAL-mapuser EXAMPLE\krbsvc-smps -mapOp set -pass "*"암호는 정책 서버의 서비스 계정을 만드는 데 사용한 암호와 동일합니다.참고:Kerberos 서비스 유형은 일반적으로 모두 대문자로 지정됩니다. 하지만smps서비스 유형은 소문자여야 합니다.
- 웹 에이전트의 keytab 파일을 만듭니다. 이 keytab 파일은 웹 에이전트 서비스 계정(krbsvc-smwa)을 웹 에이전트 서비스 프린서펄 이름(HTTP/[email protected])과 연결합니다.다음 ktpass 명령을 입력하십시오.ktpass -out C:\krbsvc-smwa.keytab -princ HTTP/[email protected] -ptype KRB5_NT_PRINCIPAL-mapuser EXAMPLE\krbsvc-smwa -mapOp set -pass "*"암호는 웹 서버의 서비스 계정을 생성하는 데 사용한 암호와 동일합니다.참고:keytab 파일의 기본 암호화 유형은 RC4-HMAC입니다. 명령 프롬프트에서ktpass /?를 입력하여 유형을 확인하십시오.
- 정책 서버 및 웹 에이전트 서비스 계정이 위임용으로 트러스트되고 위임된 자격 증명을 제공할 수 있도록 구성합니다. 정책 서버 및 웹 에이전트 계정에는 사용자를 가장하여 다른 네트워크 서비스를 사용하기 위한 권한이 필요합니다. ADUC(Active Directory 사용자 및 컴퓨터) 관리 도구를 사용하여 위임을 구성하십시오. 다음 단계를 수행하십시오.
- 서비스 계정(정책 서버: krbsvc-smps, 웹 에이전트: krbsvc-smwa)을 마우스 오른쪽 단추로 클릭하고 "속성"을 선택합니다.
- "위임" 탭을 선택합니다.
- "모든 서비스에 대한 위임용으로 이 사용자 트러스트(Kerberos만)" 옵션을 선택합니다.
Windows 플랫폼의 KDC가 구성되었습니다.
UNIX의 KDC 구성
다음 절차에서는 UNIX 호스트에서 KDC를 구성하는 방법을 보여 줍니다. 이 절차에서는
Single Sign-On
과 함께 제공되는 MIT Kerberos를 사용한다고 가정합니다.이 절차에서는 keytab 파일을 두 개 만듭니다. keytab 파일은 Kerberos 인증에 필요합니다. 이 파일은 서비스 계정이 암호를 입력할 필요 없이 KDC로 인증되도록 합니다. UNIX 플랫폼의 경우 keytab 파일은
ktadd
도구를 사용하여 생성됩니다.다음 단계를 수행하십시오.
- Kerberos 영역을 아직 만들지 않은 경우 다음 kdb5_util 명령을 입력합니다.kdb5_util create -r EXAMPLE.COM -s위의 명령에서-s인수는 stash 파일을 만듭니다. stash 파일과 keytab 파일은 잠재적인 보안 취약점입니다. stash 파일을 설치할 경우 이 파일은 루트에서만 읽을 수 있고 백업되지 않아야 하며 KDC 로컬 디스크에만 있어야 합니다. stash 파일이 필요하지 않으면-s옵션 없이 kdb5_util을 실행하십시오.
- KDC가 있는 도메인에 사용자 계정(testkrb)을 만듭니다.
- 정책 서버 호스트의 경우 다음을 만듭니다.
- 사용자 프린서펄(testpskrb)
- 정책 서버 서비스 프린서펄(smps/pserver.example.com)
- 정책 서버 호스트의 정책 서버 서비스 계정(krbsvc-smps). 이 계정의 암호를 제공하십시오.
- 정책 서버 서비스 프린서펄에 대한 keytab 파일을 만듭니다. 다음kadmin명령을 입력합니다.kadmin.local -q "ktadd -k krbsvc-smps.keytab smps/[email protected]"
- 웹 서버 호스트에 있는 웹 에이전트에 대해 다음을 만듭니다.
- 사용자 프린서펄 이름(testwakrb)
- 웹 에이전트 서비스 프린서펄(HTTP/[email protected])
- 웹 에이전트 서비스 계정(krbsvc-smwa)
- 웹 에이전트 서비스 계정의 암호
- keytab 파일을 만들고 keytab 파일에 웹 에이전트 서비스 프린서펄을 추가합니다. 다음kadmin명령을 입력합니다.kadmin.local -q "ktadd -k krbsvc-smwa.keytab HTTP/[email protected]"
- 정책 서버 및 웹 서버 서비스 계정이 위임용으로 트러스트되고 위임된 자격 증명을 제공할 수 있도록 구성합니다. 정책 서버 및 웹 에이전트 계정에는 사용자를 가장하여 다른 네트워크 서비스를 사용하기 위한 권한이 필요합니다. 다음 명령을 입력하십시오.정책 서버 서비스 계정:kadmin.local -q "modify_principal +ok_to_auth_as_delegate smps/[email protected]"웹 에이전트 서비스 계정:kadmin.local -q "modify_principal +ok_to_auth_as_delegate HTTP/[email protected]"
UNIX 호스트에 KDC가 구성되었습니다.