문제

나는 가이드 라인을 따르려고 노력했다 이 Microsoft 기사 Kerberos 및 Ad와 함께 Apache에 대해 인증합니다. Apache Server와 AD 서버 간의 커뮤니케이션을 KINIT로 성공적으로 테스트했습니다. 그러나 IE가있는 서버에서 제한된 페이지에 액세스하려고하면 내부 서버 오류가 발생하고 다음은 Apache 오류 로그에 나타납니다.

[Wed Sep 24 14:18:15 2008] [debug] src/mod_auth_kerb.c(1483): [client 172.31.37.38] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Wed Sep 24 14:18:15 2008] [debug] src/mod_auth_kerb.c(1174): [client 172.31.37.38] Acquiring creds for HTTP/srvnfssol1.dev.local@DEV.LOCAL
[Wed Sep 24 14:18:15 2008] [error] [client 172.31.37.38] gss_acquire_cred() failed: Miscellaneous failure (see text) (Key table entry not found)

나는 Apache 프로세스에서 트러스를 실행했으며 실제로 KeyTab 파일 OK를로드하고 있음을 확인했습니다. KeyTab 파일의 형식에 문제가 있는지 궁금합니다 ...

HTTP/srvnfssol1.dev.local@DEV.LOCAL

그래도 내가 무엇을 놓치고 있는지 잘 모르겠습니다. 또는 어떤 다른 점을 확인 해야하는지.

제안이 있습니까?

감사

베드로

도움이 되었습니까?

해결책

확인. keytabs에는 서비스 원명,이 경우 "http/srvnfssol1.dev.local@dev.local"및 암호화 키가 포함되어야합니다. 나는 MS 문서가 파일에 반향하기 위해 말하는 곳을 봅니다. 그러나 그것이 옳다고 생각하지 않습니다.

keytab을 만들려면 ktpass 유틸리티를 사용해야합니다. MS 문서가 있습니다 여기.

특히, 지정해야합니다 KRB5_NT_SRV_HST, 나머지 옵션의 대부분은 기본값이 될 수 있습니다.

내 기계의 샘플 :

C:\>ktpass /out test.keytab /princ HTTP/srvnfssol1.dev.local@DEV.LOCAL 
           /ptype KRB5_NT_SRV_HST /pass *
Type the password for HTTP/srvnfssol1.dev.local:
Key created.

Output keytab to test.keytab:

Keytab version: 0x502
keysize 62 HTTP/srvnfssol1.dev.local@DEV.LOCAL 
ptype 3 (KRB5_NT_SRV_HST) vno 1 etype 0x1 (DES-CBC-CRC) 
keylength 8 (0xa7f1fb38041c199e)

Active Directory 서버가 KDC 인 경우 /map <name> 논쟁, 어디에 <name> 서버를 나타내는 Active Directory의 컴퓨터 계정입니다.

이 모든 것이 어떻게 작동하는지에 대한 세부 사항. 웹 사이트를 탐색 할 때는 WWW Authenticate : 협상 헤더로 응답해야하며 브라우저는 KDC (Active Directory Server)에 요청을 보내 서비스를위한 Kerberos 티켓을받습니다. AD 서버는 서비스 원명 이름을 사용하여 티켓의 암호화 키를 찾아 암호화 된 서비스 티켓을 브라우저로 돌려 보냅니다. 브라우저에 서비스 티켓이 있으면 티켓이 포함 된 인증 헤더로 HTTP 요청을 재발행합니다. Apache Server는 KeyTab에서 키를 찾아서 티켓을 해독하고 액세스 권한을 부여합니다.

Apache가 KeyTab에서 자체적으로 찾을 수 없기 때문에 "키 테이블 항목"오류가 발생합니다. 이름 해상도/영역이 제대로 설정되지 않은 경우에도 발생할 수 있습니다.

클라이언트, TCP 또는 UDP 포트 88에서 Wireshark를 사용하여 모든 Kerberos 요청 AP-Req/AP-REP/TGS-Req/TGS-REP를 볼 수 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top